2013-05-17 98 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