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复制文件代码实现
Dec 23 Python
Python中变量交换的例子
Aug 25 Python
python集合用法实例分析
May 30 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
Python作用域用法实例详解
Mar 15 Python
利用python批量检查网站的可用性
Sep 09 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
Sep 18 Python
详解python中的Turtle函数库
Nov 19 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
解决Pycharm 运行后没有输出的问题
Feb 05 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 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
AutoSave/自动存储功能实现
2007/03/24 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
JS中递归函数
2016/06/17 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
vue以组件或者插件的形式实现throttle或者debounce
2019/05/22 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
基于python历史天气采集的分析
2019/02/14 Python
如何基于Python批量下载音乐
2019/11/11 Python
Python的in,is和id函数代码实例
2020/04/18 Python
python基于socket函数实现端口扫描
2020/05/28 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
个人简历自我鉴定
2013/10/11 职场文书
大学旷课检讨书
2014/01/28 职场文书
商务经理岗位职责
2014/08/03 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL