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程序实例(通讯录)
Nov 29 Python
python使用mysqldb连接数据库操作方法示例详解
Dec 03 Python
python遍历文件夹并删除特定格式文件的示例
Mar 05 Python
python中as用法实例分析
Apr 30 Python
使用Python脚本和ADB命令实现卸载App
Feb 10 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python pyheatmap包绘制热力图
Nov 09 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
30秒学会30个超实用Python代码片段【收藏版】
Oct 15 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
python如何将图片转换素描画
Sep 08 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入门速成教程
2007/03/19 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
smarty中常用方法实例总结
2015/08/07 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
Yii2如何批量添加数据
2016/05/17 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
jquery的键盘事件修改代码
2011/02/24 Javascript
对setInterval在火狐和chrome切换标签产生奇怪的效果之探索,与解决方案!
2011/10/29 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
Vue.js -- 过滤器使用总结
2017/02/18 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
9102年webpack4搭建vue项目的方法步骤
2019/02/20 Javascript
如何从头实现一个node.js的koa框架
2019/06/17 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
Vue的自定义组件不能使用click方法的解决
2020/07/28 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
python3.7调试的实例方法
2020/07/21 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
俄罗斯园林植物网上商店:Garshinka
2020/07/16 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
教师产假请假条范文
2014/04/10 职场文书
旅游局领导班子“四风”问题对照检查材料思想汇报
2014/09/29 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
物业工程部经理岗位职责
2015/04/09 职场文书
英语演讲开场白
2015/05/29 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
电力安全学习心得体会
2016/01/18 职场文书