Каков наилучший способ автоматического назначения атрибутов в Python, и так ли это? хорошая идея?

Вместо того, чтобы писать код, подобный этому, каждый раз, когда я определяю класс:

class Foo(object): 
     def __init__(self, a, b, c, d, e, f, g):
        self.a = a
        self.b = b
        self.c = c
        self.d = d
        self.e = e
        self.f = f
        self.g = g

я мог бы использовать этот рецепт для автоматического назначения атрибутов .

class Foo(object):
     @autoassign
     def __init__(self, a, b, c, d, e, f, g):
        pass

Два вопроса :

  1. Есть ли недостатки или подводные камни, связанные с этим ярлыком?
  2. Есть ли лучший способ добиться аналогичного удобства?

31
задан FMc 6 September 2010 в 16:13
поделиться