如何获取Python中类的参数名称?

我正在尝试创建一个带有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__。


非常感谢!


交互式爱情
浏览 77回答 1
1回答

明月笑刀无情

您可以访问__init__using中定义的所有内容__dict__。所以你的args方法会是这样的    def args(self):             print(list(self.__dict__.keys()))打印['x', 'y', 'fav_animal']或者,    def args(self):             print(list(vars(self).keys()))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python