Привет, коллеги.
Вопрос не практический, просто любопытно.
Здесь я пытался превратить аргумент в атрибут.
Почему этот код не работает? ↓
class ClassName:
def add(self, **kwargs):
for key, value in kwargs.items():
eval(f'self.{key} = {value}')
exemplar = ClassName()
exemplar.add(name = 'Python')
print(exemplar.name)
# File "<string>", line 1
# self.name = Python
# ^
# SyntaxError: invalid syntax
Попытался изменить ключевую строку, но это тоже не работает:
class ClassName:
def add(self, **kwargs):
for key, value in kwargs.items():
eval(f'self.{key} = "{value}"')
exemplar = ClassName()
exemplar.add(name = 'Python')
print(exemplar.name)
# File "<string>", line 1
# self.name = "Python"
# ^
# SyntaxError: invalid syntax
Первый вопрос такой:
____ Как сделать волшебный метод,
____ который будет превращать любые атрибуты в аргументы?
Второй интереснее:
____ Как сделать волшебный метод,
____ который будет превращать массив аргументов в новые методы?
Ужас как интересно!
Благодарю за любые подсказки ;)