获取函数参数名称和对应值

时间:2020-12-25 08:13:59

标签: python

我一直在尝试创建一个类,该类从另一个类的 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] = "???"

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

如果有人能帮忙,提前致谢

0 个答案:

没有答案
相关问题