我试图创建一个类,该类可以在构造时提供给任何对象,然后将在交互式提示中列出该对象的所有可调用方法。我使用PyInquirer
模块作为交互提示,使用inspect
模块获取给定对象的所有方法
到目前为止,我已经成功地为任何给定对象动态构建了提示符,但是我的程序在尝试从提示符调用其中一个方法时出现了错误Foo() takes 0 positional arguments but 1 was given
我认为它崩溃的原因是在执行时没有更多的对象引用,因此其引用计数为零,对象被释放
如果我可以让类保持它自己对对象的引用,那么这将解决问题。比如说
def __init__(self, object):
# Create a local reference the object
self.__object = &object
但这是无效的python
如何获取对对象的引用(或者在__del__
函数中手动增加引用计数,然后手动减少)
ObjectMethodTerminal.py的完整源代码可以在这里找到https://gitlab.com/snippets/1939696
将示例类更改为:
注意在方法参数中添加了
self
如果您先尝试了此代码:
在进行长时间的课堂检查之前,你会发现你的错误
相关问题 更多 >
编程相关推荐