Bir yapıcıya (veya başka bir işleve) sahip, değişken sayıda bağımsız değişken alan ve ardından bunları koşullu olarak sınıf öznitelikleri olarak ayarlayan bir sınıfım olduğunu varsayalım.
Bunları manuel olarak ayarlayabilirim, ancak değişken parametrelerin python'da yeterince yaygın olduğu ve bunu yapmak için ortak bir deyim olması gerektiği görülüyor. Ancak bunu dinamik olarak nasıl yapacağımdan emin değilim.
Eval kullanan bir örneğim var ama bu pek güvenli değil. Bunu yapmanın doğru yolunu bilmek istiyorum - belki lambda ile?
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])
pip install attrs, sınıfınızı ile dekore edin @attr.sve bağımsız değişkenleri a = attr.ib(); b = attr.ib()vb. ayarlayın . Buradan daha fazla bilgi edinin .