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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python中使用 Selenium 实现网页截图实例
Jul 18 Python
python利用Guetzli批量压缩图片
Mar 23 Python
Python实现的概率分布运算操作示例
Aug 14 Python
python实现简易动态时钟
Nov 19 Python
python进程和线程用法知识点总结
May 28 Python
python实现视频分帧效果
May 31 Python
python实现静态服务器
Sep 05 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
PHP模块化安装教程
2016/06/01 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
js点击选择文本的方法
2015/02/09 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
JS脚本实现动态给标签控件添加事件的方法
2016/06/02 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python列表操作使用示例分享
2014/02/21 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python os.fork() 循环输出方法
2019/08/08 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
初中物理教学反思
2014/01/14 职场文书
励志演讲稿600字
2014/08/21 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
公司委托书格式范本
2014/09/16 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python