Как создавать переменную с заранее неизвестным именем
У меня есть класс Person
class Person:
def __init__(self, name, sex):
self.name = name
self.sex = sex
Я хочу создавать объекты класса так, чтобы они назывались по признаку self.name.
Т.е, к примеру, в псевдокоде это будет выглядеть так:
имя_человека = Person(имя_человека, пол)
Спасибо!
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
Если переменная создаётся в глобальной области видимости:
name = 'Иван'
globals().update({name: Person(name, 'male')})
# в глобальной области видимости теперь есть переменная с именем Иван, содержащий объект класса Person
Если переменная создаётся в локальной области видимости (внутри функции):
def someFunction(name='Иван'):
locals().update({name: Person(name, 'male')})
# в области видимости функции someFunction теперь есть переменная с именем Иван, содержащий объект класса Person
Если переменная создаётся внутри объекта класса:
a = SomeClass()
name = 'Иван'
a.__dict__.update({name: Person(name, 'male')})
# в объекте a теперь есть атрибут с именем Иван, содержащий объект класса Person