python定义类self用法实例解析


Posted in Python onJanuary 22, 2020

这篇文章主要介绍了python定义类self用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

在定义类的过程中,无论是显式的创建类的构造方法,还是向类中添加实例方法,都要将self参数作为方法的第一个参数。

class Person:
def __init__(self):
print("正在执行构造方法")
def study(self, name):
print(name, "正在学python")
python类方法中的self参数就相当于C++中的this指针。
同一个类可以产生多个对象,当某个对象调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,换句话说,python会自动绑定类方法的第一个参数指向调用该方法的对象。
如此,python解释器就能知道到底要操作哪个对象的方法了。

程序在调用实例方法和构造方法时,不需要手动为第一个参数传值。

class Person:
def __init__(self):
print("正在执行构造方法")
def study(self):
print(self, "正在学python")
xiaobai = Person()
xiaobai.study()
mary = Person()
mary.study()
#执行结果
#study()中的self代表该方法的调用者,即谁调用该方法,那么self就代表谁。
正在执行构造方法
<__main__.Person object at 0x0000013B6A24BA58> 正在学python
正在执行构造方法
<__main__.Person object at 0x0000013B6A24BC88> 正在学python
对于构造函数中的self参数,其代表的是当前正在初始化的类对象。

class Person:
  name = "xiaobai"
  def __init__(self, name):
    self.name = name
mary = Person("mary")
print(mary.name)
lisa = Person("lisa")
print(lisa.name)
#执行结果
mary
lisa

总之,无论是类中的构造函数还是普通的类方法,实际调用它们的是谁,则self就代表谁。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python and、or以及and-or语法总结
Apr 14 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
ubuntu安装sublime3并配置python3环境的方法
Mar 15 Python
matplotlib savefig 保存图片大小的实例
May 24 Python
python实现泊松图像融合
Jul 26 Python
对python中的 os.mkdir和os.mkdirs详解
Oct 16 Python
python通过实例讲解反射机制
Oct 17 Python
Python 中的pygame安装与配置教程详解
Feb 10 Python
Pygame的程序开始示例代码
May 07 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
通过实例解析python描述符原理作用
Jan 22 #Python
python基于property()函数定义属性
Jan 22 #Python
Python @property装饰器原理解析
Jan 22 #Python
Python底层封装实现方法详解
Jan 22 #Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 #Python
使用tensorboard可视化loss和acc的实例
Jan 21 #Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 #Python
You might like
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
用html+css+js实现的一个简单的图片切换特效
2014/05/28 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
2017/12/23 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
node 版本切换的实现
2020/02/02 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
[01:10]DOTA2英雄背景故事第四期之混沌法则混沌骑士
2020/07/16 DOTA
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
python如何进入交互模式
2020/07/06 Python
Python 读取位于包中的数据文件
2020/08/07 Python
阿玛尼意大利官网:Armani意大利
2018/10/30 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
品质管理部岗位职责范文
2014/03/01 职场文书
企业宣传口号
2014/06/12 职场文书
公务员个人考察材料
2014/12/23 职场文书
学校三八妇女节活动总结
2015/02/06 职场文书
2015年护士长个人工作总结
2015/04/24 职场文书