我正在嘗試創(chuàng)建一個帶有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)我試圖想出一個解決方案,該函數(shù)將自動返回屬性名稱args(self)列表。我可以手動設(shè)置,但我希望它在調(diào)用時自動發(fā)生。[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該函數(shù)將根據(jù)需要返回給定參數(shù)的值,而不是名稱。對于上下文,我想要這樣做的原因是因為我將在多個項目中使用這種類型的東西,并且我希望能夠向 中添加參數(shù),而無需手動更新列表__init__。非常感謝!
1 回答

明月笑刀無情
TA貢獻1828條經(jīng)驗 獲得超4個贊
您可以訪問__init__
using中定義的所有內(nèi)容__dict__
。
所以你的args
方法會是這樣的
????def?args(self):? ???????????print(list(self.__dict__.keys()))
打印
['x',?'y',?'fav_animal']
或者,
????def?args(self): ????????????print(list(vars(self).keys()))
添加回答
舉報
0/150
提交
取消