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使用win32com在百度空间插入html元素示例
Feb 20 Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
Python与R语言的简要对比
Nov 14 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
python实现requests发送/上传多个文件的示例
Jun 04 Python
Python做智能家居温湿度报警系统
Sep 25 Python
Scrapy框架实现的登录网站操作示例
Feb 06 Python
基于python实现生成指定大小txt文档
Jul 20 Python
Python headers请求头如何实现快速添加
Nov 03 Python
Python Parser的用法
May 12 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
PHP 采集获取指定网址的内容
2010/01/05 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
jquery 插件学习(一)
2012/08/06 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
fckeditor粘贴Word时弹出窗口取消的方法
2014/10/30 Javascript
javascript验证身份证号
2015/03/03 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
浅谈Sublime Text 3运行JavaScript控制台
2016/06/06 Javascript
全面理解闭包机制
2016/07/11 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python进程类subprocess的一些操作方法例子
2014/11/22 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
浅谈Python中的私有变量
2018/02/28 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
python实现图片,视频人脸识别(dlib版)
2020/11/18 Python
用python发送微信消息
2020/12/21 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
opencv实现图像平移效果
2021/03/24 Python
材料员岗位职责
2014/03/13 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
英语导游词
2015/02/13 职场文书
综治目标管理责任书
2015/05/11 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书