Discuss / Python / 一、关于__init__ 和self 二、私有变量/函数

一、关于__init__ 和self 二、私有变量/函数

Topic source

一盒噪噪

#1 Created at ... [Delete] [Delete and Lock User]

一、

__init__是类中的私有函数,在实例化类的时候自动运行

其他的函数除非你调用,否则不会运行

class Q:               #不需要继承别的父类的时候,可以不加括号
    __init__(self,a,b):
        self.a=a
        self.b=b

q=Q(A,B)

实际上计算机做的处理:

①申请一块内存,命名为q

②把q的地址和赋值参数传给Q

③自动运行__init__函数,如果__init__函数中有print,此时也会打印出来,把赋值给self的变量的内容传入q的内存中

此时你在函数外部也可以通过    q.变量名   调用此变量

二、

在类中给函数名/变量名前加上两个下划线“__” 

此函数/变量就会变成私有的

在外部无法调用,即使实例化后,通过实例化的函数名.__变量名  也无法调用

有两个方法:

①在类中定义一个函数,把私有变量作为返回函数返回,这样调用这个函数的时候,就可以得到私有变量,例:

class Q:

    __n=1

    def get_n(self):

        return self.__n

q=Q()

q.get_n()

得到:1

class Q:

    __n=1

q=Q()

q._Q__n


  • 1

Reply