Возможно ли динамически генерировать атрибут в объекте python? - PullRequest
3 голосов
/ 04 ноября 2011

Например, объект имеет только два атрибута, объект person, в этом примере только имя и второе имя.Можно ли сделать гендерный атрибут на лету?Благодарю.

Ответы [ 2 ]

8 голосов
/ 04 ноября 2011

короткий ответ: да

class Person(object):
    def __init__(self):
        self.first_name = 'Will'
        self.second_name = 'Awesome'

my_guy = Person()
my_guy.gender = "Male"
print(my_guy.gender)

напечатает Male

2 голосов
/ 04 ноября 2011

Если вы даже знаете, как называется этот атрибут, когда пишете код, вы можете

my_guy = Person()

attr = 'secret_habit'  # this could be read from file, keybrd etc.
value = 'wont tell you'
setattr( my_guy, attr, value)

print(my_guy.secret_habit)

я получу 'не скажу'

...