无法删除 python 个对象实例

Cannot delete python object instance

举个例子,我有一个 class A:

def start(): 
    global object
    object = A()

def stop():
    del object

我收到一个错误local variable 'object' referenced before assignment

我想使用 start 函数存储新创建对象的引用 并使用停止函数删除对象引用。

有什么方法可以使用函数实例化对象和删除对象实例吗?

非常感谢!

使用名称 object 是非常糟糕的做法,因为它是 python 关键字。不要那样做。

要删除函数内的全局变量,您需要先重新声明它们。见下文。

def start(): 
    global obj
    obj = {"dog": True}

def stop():
    global obj # Re-declare.
    del obj
   
start()
print(obj) # {'dog': True}
stop()
print(obj) # NameError: name 'obj' is not defined

另请注意,在这种情况下,更改全局变量或删除它们通常被视为不良做法。

object = None

def start(): 
    global obj
    obj = {"dog": True}

def stop():
    global obj
    obj = None

谢谢大家!我使用 None 启动对象,对两个函数使用全局变量并将变量设置为 None 而不是停止函数