Python类变量问题

2024-09-28 20:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python的类变量有些怀疑。作为我的理解,如果我定义了一个类变量,它被声明在^ {CD1> }函数之外,这个变量将只作为C++中的静态变量创建一次。在

对于某些python类型,例如dict和list类型,这似乎是正确的,但对于那些基类型,例如int、float,则不一样。在

例如:

class A:
    dict1={}
    list1=list()
    int1=3

    def add_stuff(self, k, v):
        self.dict1[k]=v
        self.list1.append(k)
        self.int1=k

    def print_stuff(self):
        print self.dict1,self.list1,self.int1

a1 = A()
a1.add_stuff(1, 2)
a1.print_stuff()
a2=A()
a2.print_stuff()

输出为:

^{pr2}$

我理解dict1和list1的结果,但是为什么int1的行为不同呢?在


Tags: selfadd声明a2类型定义defa1