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

Смежные вопросы