获取对象的引用

Get a reference to an object

我正在尝试创建一个 class,它可以在构建时被赋予任何对象,然后将在交互式提示中列出该对象的所有可调用方法。我正在使用 PyInquirer 模块进行交互式提示,并使用 inspect 模块来获取给定对象的所有方法。

到目前为止,我已经成功地为任何给定对象动态构建提示,但是当我试图从提示中调用其中一种方法时,我的程序给出了错误 Foo() takes 0 positional arguments but 1 was given

我认为它崩溃的原因是在执行时没有更多对该对象的引用,因此它的引用计数为零并且对象被释放。

如果我能让 class 保留它自己对该对象的引用,那么这将解决问题。例如

    def __init__(self, object):

        # Create a local reference the object
        self.__object = &object

但这是无效的python。

如何获取对象的引用(或手动增加引用计数,并在 __del__ 函数中手动减少它)?

可在此处找到 ObjectMethodTerminal.py 的完整源代码 https://gitlab.com/snippets/1939696

将您的示例 class 更改为:

class A:
    def Foo(self):
        print("Hello")

    def Bar(self):
        print("World")

    def Baz(self):
        print("!") 

注意方法参数中添加的 self

如果您先尝试过此代码:

a = A()
a.Foo()

在检查 class.

之前,你会发现你的错误