Discuss / Python / 关于类的函数中引用优先级问题

关于类的函数中引用优先级问题

Topic source

一盒噪噪

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

如交互模式中:例1:在类中的构造函数中,优先引用函数中的w,交互模式中,引用了Q中的w

>>> w=0
>>> class Q:
        w=1
        def __init__(self):
            w=2
            print('w=%d'%w)
>>> a=Q()
>>> w=2
>>> a.w
>>> 1

例2:在类的构造函数中,没有的对象,优先引用交互模式下的

>>> w=0
>>> class Q:
        w=1
        def __init__(self):
            print(w)
>>> a=Q()
>>> 0
>>> a.w
>>> []
>>> w
>>> [1]

实例变量:位于一块单独的存储空间中(在创建类对象时,会分配一块存储空间,用类对象的名字命名,并把它作为参数赋值给self,传入构造函数__init__中,

                                                                        self.name=name  就是在那块存储空间中创建一个name变量,并赋值的过程)

静态变量:位于class中,且类中的函数外

局部变量:位于类中的函数内

全局变量:位于类外

一盒噪噪

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

类属性的内存地址只有一个,所有的类对象共用一个类属性

类对象每次都会创建一个新的内存区域


  • 1

Reply