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的Django框架上部署ORM库的教程
Apr 20 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
解决pycharm界面不能显示中文的问题
May 23 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
Aug 31 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Django实现内容缓存实例方法
Jun 30 Python
Python持续监听文件变化代码实例
Jul 22 Python
详解Python中的路径问题
Sep 02 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 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的PDO预处理语句与存储过程
2019/01/27 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
你必须知道的Javascript知识点之&quot;单线程事件驱动&quot;的使用
2013/04/23 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
JS长整型精度问题实例分析
2015/01/13 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
python处理csv中的空值方法
2018/06/22 Python
Python实现元素等待代码实例
2019/11/11 Python
python 实现矩阵填充0的例子
2019/11/29 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
信息部岗位职责
2013/11/12 职场文书
房务中心文员岗位职责
2014/04/16 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
颐和园导游词400字
2015/01/30 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android
app场景下uniapp的扫码记录
2022/07/23 Java/Android