我厌倦了输入
class A:
def __init__(self, x, y, z):
self.x,self.y,self.z = x,y,z
它只是感觉像冗余代码。有没有办法说“我传入的这些变量将成为具有相应名称的字段(即与这些变量名称相同的名称)在一行中?
答案 0 :(得分:2)
您可以通过以下方式实现目标:
class My:
def __init__(self, **kwargs):
for k,v in kwargs.items():
setattr(self, k, v)
my = My(foo=10, bar=12)
print(vars(my))
请参阅此处查看Documentation。
答案 1 :(得分:0)
在Python 3.7+中,新的dataclasses
模块似乎非常适合此操作。不过,您必须注释参数的类型,这可能对您不利,也可能对您不利。