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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
python使用Image处理图片常用技巧分析
Jun 01 Python
python字符串对其居中显示的方法
Jul 11 Python
在Python的Django框架中生成CSV文件的方法
Jul 22 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python删除服务器文件代码示例
Feb 09 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
在ipython notebook中使用argparse方式
Apr 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 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
js html实现计算器功能
2018/11/13 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
Python fileinput模块使用实例
2015/06/03 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017/09/22 Python
python中的colorlog库使用详解
2019/07/05 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
Python的几种主动结束程序方式
2019/11/22 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
意大利运动服减价商店:ScontoSport
2020/03/10 全球购物
园林施工员岗位职责
2013/12/11 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
普通话宣传标语
2014/06/26 职场文书
战略合作意向书
2014/07/29 职场文书
法人代表证明书
2014/09/18 职场文书
2015年高中班主任工作总结
2015/04/30 职场文书
会计专业自荐信范文
2019/05/22 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL