获取对对象的引用

2024-09-28 20:38:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个类,该类可以在构造时提供给任何对象,然后将在交互式提示中列出该对象的所有可调用方法。我使用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


Tags: 模块对象方法self程序objectfoo错误
1条回答
网友
1楼 · 发布于 2024-09-28 20:38:43

将示例类更改为:

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

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

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

注意在方法参数中添加了self

如果您先尝试了此代码:

a = A()
a.Foo()

在进行长时间的课堂检查之前,你会发现你的错误

相关问题 更多 >