我一直在尝试创建一个类,该类从另一个类的 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 参数的值。
如果有人能帮忙,提前致谢