python的self

Posted stephen-qin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的self相关的知识,希望对你有一定的参考价值。

好文章:https://blog.csdn.net/CLHugh/article/details/75000104

重要观点:

两个下划线,在Python中,实例的变量名如果以开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问

你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

 

self代表类的实例,而非类。

class Test:
    def ppr(self):
        print(self)
        print(self.__class__)

t = Test()
t.ppr()
执行结果:
<__main__.Test object at 0x000000000284E080>
<class __main__.Test>

从上面的例子中可以很明显的看出,self代表的是类的实例。而self.__class__则指向类。 
注意:把self换成this,结果也一样,但Python中最好用约定俗成的self。 

在Python解释器的内部,当我们调用t.ppr()时,实际上Python解释成Test.ppr(t),也就是把self替换成了类的实例。

在继承时,传入的是哪个实例,就是那个传入的实例,而不是指定义了self的类的实例。

以上是关于python的self的主要内容,如果未能解决你的问题,请参考以下文章

Python为啥要self

[转]python self类构造和析构方法 简单学习

python2和python3的区别

python能做啥有趣的东西

python初识

python基础:python的安装第一个python程序