首页 > 解决方案 > 获取函数参数名称和对应的值

问题描述

我一直在尝试创建一个从另一个类的init方法获取参数名称和后续值的类。这是我试图从中获取这些名称的类的示例:

class Item(Watcher):
   def __init__(self, iname: str, iid=0):
       super().__init__()
       self.iname = iname
       self.iid = iid

   def __repr__(self):
       return f"{self.iname}"

我想让父类做的是获取函数参数(在这种情况下,“iname”和“iid”,但应该适用于具有不同参数名称的任何函数),以及这些参数的值并吐出它们以字典形式退出,如下所示:

{"iname": "iname's value", "iid": "iid's value"}

到目前为止,我已经尝试过这个(来自Getting list of parameter names inside python function):

class Watcher:
    def __init__(self):
        pass
    
    def root(self):
        params = self.__init__.__code__.co_varnames
        a = {}
        for param in params:
            if not param == "self": out[param] = "???"

但这就是我卡住的地方。我不太确定如何在给定参数名称字符串的情况下动态获取初始化参数的值。

如果有人可以提供帮助,请提前感谢

标签: python

解决方案


推荐阅读