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中内置数据类型list,tuple,dict,set的区别和用法
Dec 14 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
Python制作动态字符图的实例
Jan 27 Python
Python读取指定日期邮件的实例
Feb 01 Python
python实现维吉尼亚算法
Mar 20 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
Python3爬虫发送请求的知识点实例
Jul 30 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 Python
Python字典的基础操作
Nov 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 session处理的定制
2009/03/16 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
8个PHP数组面试题
2015/06/23 PHP
html中table数据排序的js代码
2011/08/09 Javascript
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
python使用递归解决全排列数字示例
2014/02/11 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Windows下python3.7安装教程
2018/07/31 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
元组列表字典(莫烦python基础)
2019/04/03 Python
Python安装Bs4的多种方法
2020/11/28 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
赔偿协议书范本
2014/04/15 职场文书
党员自我对照检查材料
2014/08/19 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
综治维稳工作汇报
2014/10/27 职场文书
三八妇女节主持词
2015/07/04 职场文书
初中运动会前导词
2015/07/20 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js