python_self到底是干什么的

在编写python中的类时,会发现总是需要在变量前加上self

看了很多网上的不同观点,基本意思就是,加上self的变量属于实例化的对象,但是不属于这个类自身的变量。

但是光这些话,还不能让我对self的作用掌握清楚

在类调用类内部函数时,会自动传入self参数

可以看出:这里定义self,其实就是让你在实例化时候传入的变量,可以被合理的运用在不同的方法中
你即使函数中不去定义self,在实例化对象后,调用方法的时候,还是会自动传入self参数,所以我认为之前理解的self用来区分自身变量和实例化变量,应该是不对的
本质上不就是为了实例化时传进去的参数可以被合理的运用在不同方法中嘛。
所以我认为:只要是类中的方法就必须加上self参数,因为在调用方法时,你也一定会传入进去一个self参数,要不然就会导致传入和原本参数不对应的情况。

class people:
    def __init__(self,name):
        self.name = name
    def sayhello(self,a):
        print('hello' + self.name + a)
    def saygooby(a,b):
        print('gooby'+ a.name + b)
p1 = people('anna')
p2 = people('jack')

p1.sayhello('lzw')
p2.saygooby('lzw')

 

posted @ 2021-09-06 17:41  Lzwhehe  阅读(150)  评论(0)    收藏  举报