python中self原理实例分析


Posted in Python onApril 30, 2015

本文实例讲述了python中self原理。分享给大家供大家参考。具体分析如下:

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。

假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法 MyObject.method(arg1, arg2) 的时候,这会由Python自动转为 MyClass.method(MyObject, arg1, arg2)——这就是self的原理了。

这也意味着如果你有一个不需要参数的方法,你还是得给这个方法定义一个self参数。

示例程序:

>>> class P:
...   def selfDemo(self):
...       print 'Python, why self?'
...
...
>>> p = P()
>>> p.selfDemo()
Python, why self?
>>>

将selfDemo()中参数换为其他,如selfDemo(x),输出同样结果。

若不加参数,则报错:

>>> class P:
...   def selfDemo(): # have no arguments
...       print 'Python, why self?'
...
...
>>> p = P()
>>> p.selfDemo()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: selfDemo() takes no arguments (1 given)
>>>

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
python获取list下标及其值的简单方法
Sep 12 Python
Ubuntu下创建虚拟独立的Python环境全过程
Feb 10 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
python获取命令行输入参数列表的实例代码
Jun 23 Python
python2与python3中关于对NaN类型数据的判断和转换方法
Oct 30 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
python实现梯度下降法
Mar 24 Python
Python分类测试代码实例汇总
Jul 23 Python
Python 如何展开嵌套的序列
Aug 01 Python
教你用python实现12306余票查询
Jun 30 Python
部署Python的框架下的web app的详细教程
Apr 30 #Python
python实现清屏的方法
Apr 30 #Python
Python中类的定义、继承及使用对象实例详解
Apr 30 #Python
python中global用法实例分析
Apr 30 #Python
python中as用法实例分析
Apr 30 #Python
python中pass语句用法实例分析
Apr 30 #Python
python中assert用法实例分析
Apr 30 #Python
You might like
php输出xml格式字符串(用的这个)
2012/07/12 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
python之Socket网络编程详解
2016/09/29 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
使用Python函数进行模块化的实现
2019/11/15 Python
Python: glob匹配文件的操作
2020/12/11 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
拾金不昧表扬信范文
2014/01/11 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
2014年计生标语
2014/06/23 职场文书
三八活动策划方案
2014/08/17 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
详解JS ES6编码规范
2021/05/07 Javascript
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
DE1107机评
2022/04/05 无线电