2013-05-17 118 views
0

我只是想知道是否有快捷方式來設置默認屬性。 我一般會做在類調用中設置類屬性

class class1(object): 
    def __init__(self, att1='X'): 
     self.att1 = att1 

是否有線路的快捷方式關閉

class class1(object): 
    def __init__(self, self.att1='X'): 

我想在呼叫的時刻,對象不存在,所以似乎合乎邏輯的,這種方式不工作,但是當有更多的屬性需要設置時,可能有一些不那麼冗長的方式來處理這個問題。 有什麼建議嗎?

+3

不,沒有。 –

+0

我很困惑。你不能只是'self.att1 ='X'',還是我錯過了點 – TerryA

+0

@Haidro:默認值。 :-) –

回答

1

試着這麼做:

class class1(object): 
    att1='X' 
    def __init__(self, **kwargs): 
     self.__dict__.update(kwargs) 
+0

如果您想使用(__slots__),則無法應用。此外,它允許用戶添加/更改實例中的任何屬性。 – Bakuriu

+0

謝謝,這絕對是很好的知道。在我的情況下,我仍然想限制屬性,因爲只有更容易解除綁定,否則調用對象時拼寫錯誤會很快潛入 – chrise