kmodel = Kmodel( param1 = 10, param2 = None, param3 = "name3", param4 = [1, 3, 5], param5 = dict("keyx": "valuey"})
...
figure_out_actual_params(kmodel)
def figure_out_acutal_params( kmodel ):
...
谢谢!
PS。请注意,有关于这一主题的几个类似的问题,我已经阅读了他们。我不;吨认为这个问题是一样的。对于我的问题,我可以查询所有对象的内部对象的属性,我仍然会无法分辨出哪一个实际的对象施工过程中已指定。 (粘性的问题是实际参数可能恰好是默认值。)
您可以添加到__init__
节也许保存输入变量部分?
class MyThing:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
self.initial_settings = [arg1, arg2]
然后,只要你永远不会覆盖self.initial_settings
将举行它与(让你自由地改变self.arg1
例如)初始化值。您还可以包括一些if
逻辑来确定是否默认参数是在创建覆盖(虽然我不相信有办法判断一个初始值提供这等同于默认值)。否则,我认为你将不得不使用dir(some_object_instance)
来确定当前属性,但我不认为有任何其他的方式来确定除了初始化期间存储这些初始属性...