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 相关文章推荐
Django实现图片文字同时提交的方法
May 26 Python
python中PIL安装简单教程
Apr 21 Python
Python3.5 创建文件的简单实例
Apr 26 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
python实现简单加密解密机制
Mar 19 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
python网络编程之五子棋游戏
May 14 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
Dec 08 Python
Python数据结构之队列详解
Mar 21 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
php计算函数执行时间的方法
2015/03/20 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
了解JavaScript中的选择器
2019/05/24 Javascript
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
python数字图像处理实现直方图与均衡化
2018/05/04 Python
Python格式化输出%s和%d
2018/05/07 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
python基于openpyxl生成excel文件
2020/12/23 Python
详解Pymongo常用查询方法总结
2021/01/29 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
德国珠宝和配件商店:Styleserver
2021/02/23 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
总裁岗位职责
2013/12/04 职场文书
2014年体育部工作总结
2014/11/13 职场文书
个人年底工作总结
2015/03/10 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python