今天我在訪問中被問到一個問題:「如果我們在類之外定義實例變量,它會顯示任何錯誤」。在類之外定義實例變量
class temp():
a=0
b=0
def __init__(self,*args):
temp.a = args[0]
temp.b = args[1]
if len(args)>2 and args[2]:
print 'extra',args[2]
def display(self):
print self.a,self.b,self.c
a = temp(4,9)
b = temp(5,3)
a.c = 20
a.display()
如果我上面的代碼運行,我得到的C值= 20。我從C++背景來了,認爲這將是錯誤,但不是......爲什麼是這樣的...爲什麼蟒蛇允許創建變量課外。
因爲您還沒有采取任何措施來阻止這樣做。 –
@ IgnacioVazquez-Abrams你能解釋一下嗎? – Naresh
FWIW,有一個簡單的例子,在官方的Python類教程中爲現有的類實例添加屬性[Odds and Ends](https://docs.python.org/3/tutorial/classes.html#odds-and-ends ) –