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使用beautifulsoup从爱奇艺网抓取视频播放
Jan 23 Python
获取Django项目的全部url方法详解
Oct 26 Python
Python实现matplotlib显示中文的方法详解
Feb 06 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
python钉钉机器人运维脚本监控实例
Feb 20 Python
python中while和for的区别总结
Jun 28 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 Python
如何在mac下配置python虚拟环境
Jul 06 Python
python爬取音频下载的示例代码
Oct 19 Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 Python
python实现b站直播自动发送弹幕功能
Feb 20 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调用数据库的存贮过程
2006/10/09 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PDO::errorInfo讲解
2019/01/28 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
get(0).tagName获得作用标签示例代码
2014/10/08 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
深入浅析JavaScript中的constructor
2016/04/19 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
美的官方商城:Midea
2016/09/14 全球购物
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
我未来的职业规划范文
2014/01/11 职场文书
加拿大留学自荐信
2014/01/28 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
维稳工作情况汇报
2014/10/27 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle