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中的__init__ 、__new__、__call__小结
Apr 25 Python
Python 登录网站详解及实例
Apr 11 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Django实现简单网页弹出警告代码
Nov 15 Python
pandas-resample按时间聚合实例
Dec 27 Python
PyTorch中的padding(边缘填充)操作方式
Jan 03 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
python 第三方库paramiko的常用方式
Feb 20 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文档更新介绍
2011/07/22 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
PHP实现简单日历类编写
2020/08/28 PHP
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
微信小程序中的swiper组件详解
2017/04/14 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
python中__call__方法示例分析
2014/10/11 Python
python保存字符串到文件的方法
2015/07/01 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
如何通过python画loss曲线的方法
2019/06/26 Python
利用rest framework搭建Django API过程解析
2019/08/31 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
Gerry Weber德国官网:优质女性时装,德国最大的时装公司之一
2019/11/02 全球购物
酒店总经理工作职责
2013/12/13 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
试用期辞职信范文
2015/03/02 职场文书
校长师德表现自我评价
2015/03/04 职场文书
党员进社区活动总结
2015/05/07 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android