我是python的新手,我不得不使用非GoTo
的某些属性创建一个对象。例如:
None
来自Java的土地,我知道python充满了短手,所以想知道是否有更清晰的方式来编写上述内容?当然,我的实际对象有更多的属性。我试过搜索但找不到任何有用的东西,所以我怀疑是否可能,如果有超过2个变量属性则不会缩放。
答案 0 :(得分:5)
一种方法是使用double-star operator,如下所示:
kwargs = {'name': name}
if self.obj_one is not None:
kwargs['obj_one'] = self.obj_one
if self.obj_two is not None:
kwargs['obj_two'] = self.obj_two
return MyObj(**kwargs)
简单来说:用关键字参数构造一个字典,然后将前面带有**
的字典传递给callable。
但是,None
经常(并非总是)用作可选参数的默认值。 可能这也会起作用:
return MyObj(name=name, obj_one=self.obj_one, obj_two=self.obj_two)
没有任何if
或那种东西。