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] = "???"
但这就是我卡住的地方。我不太确定如何在给定参数名称字符串的情况下动态获取初始化参数的值。
如果有人可以提供帮助,请提前感谢
解决方案
推荐阅读
- python - 双轴绘图返回 ValueError:视图限制小于 1 并且是无效的 Matplotlib 日期值
- c# - 为什么宿主玩家没有权限向服务器发送【命令】?统一 - 镜子
- google-api - gapi.auth2.BasicProfile.getName 不是函数/如何起诉 Google API 的 BasicProfile
- ruby - 如何使用 capybara 或 selenium webdriver(ruby) 捕获控制台日志?
- r - 在 R 中优化 xts 格式的循环速度
- javascript - Javascript 开/关按钮
- node.js - 具有多行相同外键对的多对多“直通”表只允许添加一次
- r - 在 data.table apply() 中结合 rollapply() 和 weighted.mean() 用于多列
- typescript - Typescript中的字符串可以为空或未定义吗?
- python - 通过比较时间戳删除数据帧行