假设我有以下代码片段:
class A:
def __init__(self, p1=1, p2=None, p3="test"):
self.p1 = p1
self.p2 = p2
self.p3 = p3
a1 = A()
a2 = A(p1=2, p3="blah")
我想要做的是以某种方式只检索传递到构造函数中的命名参数,而不包括带有缺省值的可选参数.需要说明的是,这并不意味着使用Inspect返回所有参数的列表.例如,对于a1,这将是{}
,因为构造函数是在没有参数的情况下调用的;对于a2,这将是{"p1": 2, "p3": "blah"}
,因为构造函数是用p1和p3调用的.
我试着用谷歌搜索了一下,似乎这不太可能,或者至少我还没有找到这样做的方法.
判断不起作用,因为我想对每个单独的实例化执行此操作.在构造函数中使用本地变量()也不起作用,因为它还包括可选参数,即使它们没有显式传入.