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程序员面试中被问的最多的10道题
Dec 05 Python
解析Python中的eval()、exec()及其相关函数
Dec 20 Python
使用python为mysql实现restful接口
Jan 05 Python
python实现简单遗传算法
Mar 19 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
Django框架首页和登录页分离操作示例
May 28 Python
如何在python中写hive脚本
Nov 08 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
Jan 21 Python
详解Python 中的容器 collections
Aug 17 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
python 离散点图画法的实现
Apr 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 远程关机实现代码
2009/11/10 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
python实现抖音点赞功能
2019/04/07 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
工程部经理岗位职责
2013/12/08 职场文书
经销商会议欢迎词
2014/01/11 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
简单的辞职信范文
2014/01/18 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis