Python 从对象实例检索参数值
如果我有一个类A的实例,是否有必要知道实例化该实例时使用了哪些参数 我查看了Python 从对象实例检索参数值,python,Python,如果我有一个类A的实例,是否有必要知道实例化该实例时使用了哪些参数 我查看了inspect模块,有一些工具可以很快关闭,但不太正确。例如,inspect.getargvalues(frame)几乎可以工作,只是您只能从类本身中获取frame。我想在事后得到这些 理想情况下,我想要的是: 实例_a=ClassA(参数) 检查。获取\u值\u设置\u到\u初始化(实例\u a) 如果可以避免,我不想保存init语句中的参数 如果有一种完全不同的方法,我应该说一下我希望这样做的原因:我希望能够通过保存
inspect
模块,有一些工具可以很快关闭,但不太正确。例如,inspect.getargvalues(frame)
几乎可以工作,只是您只能从类本身中获取frame
。我想在事后得到这些
理想情况下,我想要的是:
实例_a=ClassA(参数)
检查。获取\u值\u设置\u到\u初始化(实例\u a)
如果可以避免,我不想保存init语句中的参数
如果有一种完全不同的方法,我应该说一下我希望这样做的原因:我希望能够通过保存参数(使用上面想象的函数)来重新创建对象的“副本”,然后通过将完全相同的参数传递到init来实例化一个新对象。Pickle、Shelve和Marshall不起作用,因为我的对象显然是不可分解的。为什么不能从定义的类检索创建的对象的状态?一个比inspect简单得多的解决方案是在实例化时使用类装饰器获取init的参数。但是,我完全同意Ignacio-为什么需要这个?用户定义的对象通常是可pickle的--尝试时会出现什么错误?我在问题的底部添加了“为什么”。我想创建一个“副本”对象,需要知道哪些值被发送到init。decorator选项在Google中出现,但目前有点超出了我的python……你能详细说明一下吗?@mgilson:my object是一个
dict
的子类,有大量的附加方法。在我所有的泡菜/架子/马歇尔尝试中,我完全被错误所包围。我甚至不记得那些错误了。