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是编译运行的验证方法
Jan 30 Python
python机器学习之神经网络(二)
Dec 20 Python
Python:Scrapy框架中Item Pipeline组件使用详解
Dec 27 Python
python3判断url链接是否为404的方法
Aug 10 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 Python
Python微信操控itchat的方法
May 31 Python
Python numpy线性代数用法实例解析
Nov 15 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
Pandas把dataframe或series转换成list的方法
Jun 14 Python
tensorflow图像裁剪进行数据增强操作
Jun 30 Python
python 读取.nii格式图像实例
Jul 01 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中变量及部分适用方法
2008/03/27 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
屏蔽IE弹出&quot;您查看的网页正在试图关闭窗口,是否关闭此窗口&quot;的方法
2013/12/31 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
Javascript Objects详解
2014/09/04 Javascript
jquery获取多个checkbox的值异步提交给php
2015/07/07 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
JS自动生成动态HTML验证码页面
2017/06/14 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
[49:54]Ti4 循环赛第三日 LGD vs Titan
2014/07/12 DOTA
用Python实现协同过滤的教程
2015/04/08 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
PyQt5响应回车事件的方法
2019/06/25 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
戴森比利时官方网站:Dyson BE
2020/10/03 全球购物
介绍一下游标
2012/01/10 面试题
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
护理学专业推荐信
2013/12/03 职场文书
如何撰写岗位职责
2014/02/01 职场文书
文秘求职信范文
2014/04/10 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
导游词之无锡梅园
2019/11/28 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android