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 Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
python基于queue和threading实现多线程下载实例
Oct 08 Python
Python中title()方法的使用简介
May 20 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python是否适合网页编程详解
Oct 04 Python
Python zip函数打包元素实例解析
Dec 11 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
利用pyecharts读取csv并进行数据统计可视化的实现
Apr 17 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 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顺序查找和二分查找示例
2014/03/27 PHP
php实现在多维数组中查找特定value的方法
2015/07/29 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
jQuery窗口拖动功能的实现代码
2017/02/04 Javascript
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
echart简介_动力节点Java学院整理
2017/08/11 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
[47:08]OG vs INfamous 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
Python 文件和输入输出小结
2013/10/09 Python
python网络编程之读取网站根目录实例
2014/09/30 Python
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Python编写一个优美的下载器
2018/04/15 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
招商经理岗位职责
2013/11/16 职场文书
二手书店创业计划书
2014/01/16 职场文书
毕业纪念册寄语大全
2015/02/26 职场文书
复兴之路观后感
2015/06/02 职场文书
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python