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 实现文件的递归拷贝实现代码
Aug 02 Python
Python的一些用法分享
Oct 07 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
python getopt详解及简单实例
Dec 30 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
Python生成器generator用法示例
Aug 10 Python
python-numpy-指数分布实例详解
Dec 07 Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 Python
python批量生成条形码的示例
Oct 10 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
用PHP和ACCESS写聊天室(十)
2006/10/09 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
如何让DIV可编辑、可拖动示例代码
2013/09/18 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
javascript数组排序汇总
2015/07/07 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
javascript先序遍历DOM树的方法
2016/02/27 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
python处理csv中的空值方法
2018/06/22 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
python实现小世界网络生成
2019/11/21 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
瑞典度假品牌:OAS
2019/05/28 全球购物
初一家长会邀请函
2014/01/31 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
辩护词格式
2015/05/22 职场文书