Предположим, у меня есть класс с конструктором (или другой функцией), который принимает переменное число аргументов и затем устанавливает их как атрибуты класса условно.
Я мог бы установить их вручную, но кажется, что переменные параметры достаточно распространены в python, поэтому для этого должна быть общая идиома. Но я не уверен, как это сделать динамически.
У меня есть пример использования eval, но это вряд ли безопасно. Я хочу знать правильный способ сделать это - может быть, с лямбдой?
class Foo:
def setAllManually(self, a=None, b=None, c=None):
if a!=None:
self.a = a
if b!=None:
self.b = b
if c!=None:
self.c = c
def setAllWithEval(self, **kwargs):
for key in **kwargs:
if kwargs[param] != None
eval("self." + key + "=" + kwargs[param])