我正在尝试创建一个带有self属性的类,该属性是__init__.例如:class thing: def __init__(self,x,y=None,fav_animal=None): self.x = x if y is None: self.y = None else: self.y = y if y is None: self.fav_animal = None else: self.fav_animal = fav_animal self.arg_list = 'some code here?' def args(self): print(self.arg_list)我试图想出一个解决方案,该函数将自动返回属性名称args(self)列表。我可以手动设置,但我希望它在调用时自动发生。[x, y, fav_animal]self.arg_list = [x, y, fav_animal]__init__如果我通过列表附加来完成,例如:class thing: def __init__(self,x,y=None,fav_animal=None): arg_list = [] self.x = x arg_list.append(self.x)# etc... self.arg_list = arg_list该函数将根据需要返回给定参数的值,而不是名称。对于上下文,我想要这样做的原因是因为我将在多个项目中使用这种类型的东西,并且我希望能够向 中添加参数,而无需手动更新列表__init__。非常感谢!
1 回答
![?](http://img1.sycdn.imooc.com/54584d6100015f5802200220-100-100.jpg)
明月笑刀无情
TA贡献1828条经验 获得超4个赞
您可以访问__init__
using中定义的所有内容__dict__
。
所以你的args
方法会是这样的
def args(self): print(list(self.__dict__.keys()))
打印
['x', 'y', 'fav_animal']
或者,
def args(self): print(list(vars(self).keys()))
添加回答
举报
0/150
提交
取消