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中matplotlib中文乱码解决办法
May 12 Python
Python Nose框架编写测试用例方法
Oct 26 Python
python matplotlib画图实例代码分享
Dec 27 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
python生成n个元素的全组合方法
Nov 13 Python
python实现将一维列表转换为多维列表(numpy+reshape)
Nov 29 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
python pillow库的基础使用教程
Jan 13 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
PHP4在WinXP下IIS和Apache2服务器上的安装实例
2006/10/09 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
PHP数据类型的总结分析
2013/06/13 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
2010年最佳jQuery插件整理
2010/12/06 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
Webstorm2016使用技巧(SVN插件使用)
2018/10/29 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
Python进行数据提取的方法总结
2016/08/22 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python3开发环境搭建详细教程
2020/06/18 Python
详解anaconda安装步骤
2020/11/23 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
统计员岗位职责
2013/11/14 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
安全第一课观后感
2015/06/18 职场文书
学生病假条怎么写
2015/08/17 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python