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中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
python中类变量与成员变量的使用注意点总结
Apr 29 Python
Python单例模式的两种实现方法
Aug 14 Python
python requests post多层字典的方法
Dec 27 Python
django2.0扩展用户字段示例
Feb 13 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 Python
python scipy卷积运算的实现方法
Sep 16 Python
python中如何使用insert函数
Jan 09 Python
pycharm导入源码的具体步骤
Aug 04 Python
Python的三个重要函数详解
Jan 18 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学习之 认清变量的作用范围
2010/01/26 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
JavaScript作用域链示例分享
2014/05/27 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
2017/02/16 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
ant design实现圈选功能
2019/12/17 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python list使用示例 list中找连续的数字
2014/01/27 Python
python实现音乐下载的统计
2018/06/20 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
Django 解决distinct无法去除重复数据的问题
2020/05/20 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
Python如何定义一个函数
2015/09/01 面试题
进步之星获奖感言
2014/02/22 职场文书
分公司任命书
2014/06/06 职场文书
教师师德考核自我评价
2014/09/13 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
2014司机年终工作总结
2014/12/05 职场文书
同学聚会通知短信
2015/04/20 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android