栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python类中的self是什么意思?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python类中的self是什么意思?

在学习Python会发现,类的方法(构造方法和实例方法)中都会有一个固定参数self 。 

为了说清楚 self 是个什么东西,首先需要搞清实例与类之间的关系。

人类是一个学术概念,把每个人共有的属性抽象出来形成的概念。而每一个人有名字,身高,体重等属性,不同人这些属性都是不一样的,除此之外,人还有很多方法(功能),例如,思考、跑步、睡觉等等。 类和实例的关系,就像是 人类和 张三之间的关系。

我们定义一个类,Person类有两个属性:姓名和年龄;有三个方法:会跑、会思考、会睡觉。

class Person():
    def __init__(self, name,age):
        self.name = name
        self.age  = age
    def run(self):
        print(f"{self.name} is runing")
    def think(self):
        print(f"{self.name} is thinking") 
    def sleep(self):
        print(f"{self.name} is sleeping") 

# 属性:一般是对象的特征、组成部分,是一个变量,例如数组对象的长度,汽车对象的颜色等;
# 方法:一般是对象所要做的动作,例如规定汽车行驶的run()方法。

人类是一个Python类,每个个体的人代表着实例(对象),而每个人的身份证代表的Python中self,每个人可以凭借身份证去做核酸、乘火车、住酒店...(方法),而Python中的实例对象也可以凭着self去调用类的方法。

zhangsan = Person("zhangsan",18)

我们构造了一个叫"张三"、年龄18岁的人,有两个属性,它是Person的实例对象。

现在我们调用Person类中的run方法,用 「实例.方法」的形式调用。

>>> zhangsan.run()
zhangsan is runing
# zhangsan替换了{self.name},self参数指代实例对象本身。

>>> zhangsan.run
>
# 显示zhangsan绑定了Person类中的run方法。

我们看到输出结果中, zhangsan替换了{self.name},self参数在这里指实例对象本身。调用方法时,会把当前实例对象自己作为参数传递给调用方法。

run方法与当前实例对象(zhangsan)进行了绑定,意味着 调用run()时不再需要传递参数,调用时python会自动把 “张三” 作为参数传递给run方法。

那为什么要叫self呢?其实这是约定俗成的,你叫其他名字也没关系。

总结:

      类实例化后,self就是指实例对象。当某个实例对象调用类方法时,实例对象凭借self去调用类方法。该对象会把自身作为第一个参数自动传给该方法,而这第一个参数就是self。

引用:
  1. 朱卫军 知乎 《一文读懂Python中self用法》

  2. 刘志军 知乎《大家是如何理解Python中的self?》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号