无法删除 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 而不是停止函数
举个例子,我有一个 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 而不是停止函数