函数中self的理解

1、self的基本概念

在Python中,self是一个约定俗成的名称,代表类的实例(对象)本身。它是类的方法的第一个参数,用于指向调用该方法的对象。虽然你可以使用其他名称代替self,但使用self是Python社区的标准做法,能提高代码的可读性。

也就是说,从实操层面来讲,一个类中的所有的函数的第一个参数都要设置成self。这样做的意义一般是表明self.X是这个类中的变量,在这个类中是优先的。

2、self能够访问实例属性

可以定义一个类的变量,这个变量在这个实例(class)中流动,称为属性。这个一般依赖于__init__在一个类中提前设置好。

class Example:
    def __init__(self, value):
        self.value = value  # 使用self来定义实例属性

    def display(self):
        print(self.value)  # 使用self来访问实例属性

这有别于局部变量。self的使用能够区分实例属性和局部变量。在方法内部,如果你定义了一个与实例属性同名的局部变量,Python会优先使用局部变量。使用self可以明确指向实例属性:

class Example:
    def __init__(self, value):
        self.value = value  # 实例属性

    def set_value(self, value):
        self.value = value  # 这里的value是局部变量

3、self允许方法链调用

这一般指在一个类中相比于__init__,还有其他的函数在操作的过程中改变了__init__一开始定义的类的属性值,这个的实现依赖于return self。

class Example:
    def __init__(self, value):
        self.value = value

    def add(self, amount):
        self.value += amount
        return self  # 返回当前实例

    def display(self):
        print(self.value)

# 使用方法链调用
example = Example(10)
example.add(5).display()  # 输出15

4、在类内部,self能够传递实例到类中其他方法

在类的内部,self使得你可以在一个方法中调用另一个方法,保持对同一实例的引用。但是要脱离类单独使用一个类中的方法,首先要初始化这个类(通过x=Example(X,Y,Z)进行初始化),然后使用X.其中的某个函数(这个函数要有return)。

class Example:
    def __init__(self, value):
        self.value = value

    def increment(self):
        self.value += 1

    def display(self):
        print(self.value)

    def increment_and_display(self):
        self.increment()  # 调用其他方法
        self.display()    # 继续使用同一实例

总结

self是Python类中一个非常重要的概念,它使得对象能够在其方法中引用自身的属性和其他方法。通过self,你可以:

  • 访问和修改实例属性
  • 区分实例属性和局部变量
  • 实现方法链调用
  • 在类的内部方法之间传递实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏歌~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值