4
我對python的類變量有一些疑問。根據我的理解,如果我定義一個聲明在__init__()
函數之外的類變量,則該變量在C++中將只創建一次作爲靜態變量。Python類變量問題
對於一些python類型,例如字典和列表類型,這似乎是正確的,但對於那些基本類型,例如, 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()
輸出是:
{1: 2} [1] 1
{1: 2} [1] 3
我明白dict1和列表1的結果,但爲什麼INT1的行爲有什麼不同?
self.int1 =東西改變參考 – 2010-05-19 12:56:08