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根据区号生成手机号码的方法
Jul 08 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
Python实现堆排序的方法详解
May 03 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python django中8000端口被占用的解决
Dec 17 Python
python打开文件的方式有哪些
Jun 29 Python
学习Python需要哪些工具
Sep 04 Python
python实现canny边缘检测
Sep 14 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
Parse正式发布开源PHP SDK
2014/08/11 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
CSDN轮换广告图片轮换效果
2007/03/27 Javascript
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
vue项目中监听手机物理返回键的实现
2020/01/18 Javascript
Python中encode()方法的使用简介
2015/05/18 Python
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
Python日志模块logging基本用法分析
2018/08/23 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
小学岗位竞聘方案
2014/01/22 职场文书
化工专业求职信
2014/07/01 职场文书
信访工作汇报材料
2014/10/27 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
Ruby处理CSV数据方法详解
2022/04/18 Ruby