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 四种数值类型(int,long,float,complex)
Jun 08 Python
Python3.6正式版新特性预览
Dec 15 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python爬虫信息输入及页面的切换方法
May 11 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
Jun 28 Python
python tkinter基本属性详解
Sep 16 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
BeautifulSoup获取指定class样式的div的实现
Dec 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
PHP时间函数使用详解
2019/03/21 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
非常酷炫的Bootstrap图片轮播动画
2016/05/27 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
基于python进行桶排序与基数排序的总结
2018/05/29 Python
python中cPickle类使用方法详解
2018/08/27 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
详解基于Scrapy的IP代理池搭建
2020/09/29 Python
is_file和file_exists效率比较
2021/03/14 PHP
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
车间操作工岗位职责
2013/12/19 职场文书
国贸专业个人求职信范文
2014/01/08 职场文书
电大本科自我鉴定
2014/02/05 职场文书
库房管理员岗位职责
2014/03/09 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫