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自动连接ssh的方法
Mar 07 Python
Python读取Excel的方法实例分析
Jul 11 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
Jun 07 Python
简单谈谈Python流程控制语句
Dec 04 Python
Python+OpenCV让电脑帮你玩微信跳一跳
Jan 04 Python
Python基础教程之利用期物处理并发
Mar 29 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 Python
python pip源配置,pip配置文件存放位置的方法
Jul 12 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
Python logging日志库空间不足问题解决
Sep 14 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 获取百度的热词数据的代码
2012/02/18 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
php实现源代码加密的方法
2015/07/11 PHP
phpStudy访问速度慢和启动失败的解决办法
2015/11/19 PHP
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
javascript类型转换使用方法
2014/02/08 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
Python实现的简单hangman游戏实例
2015/06/28 Python
详解django中自定义标签和过滤器
2017/07/03 Python
对pandas中to_dict的用法详解
2018/06/05 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
详解Python with/as使用说明
2018/12/13 Python
python基础教程之while循环
2019/08/14 Python
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
weblogic面试题
2016/03/07 面试题
幼儿园教师节活动方案
2014/02/02 职场文书
思想品德课教学反思
2014/02/10 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
先进典型发言材料
2014/12/30 职场文书
应届生简历自我评价
2015/03/11 职场文书
党支部季度考核意见
2015/06/02 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
学术会议开幕词
2016/03/03 职场文书
python本地文件服务器实例教程
2021/05/02 Python
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python