gpt4 book ai didi

python - 如何避免在 python 中创建对象?

转载 作者:太空狗 更新时间:2023-10-30 00:36:59 25 4
gpt4 key购买 nike

我是 python 编程的新手,我有一个类,我为这个类创建了一个对象(obj1)。除了这个对象,我不想创建其他对象,如果有人想为这个类再创建一个对象那应该只引用第一个对象(而不是再创建一个对象)。如何做到这一点?请引用下面的代码?

class MyClass:
def __init__(self):
pass
obj1=MyClass()//create object
obj2=MyClass()//avoid creation and refer obj2 to obj1
obj3=MyClass()//avoid creation and refer obj3 to obj1

最佳答案

所以你想要一些单例的东西?然后根本不要为此使用对象。只需将函数放在单独的模块(.py 文件)中,然后将变量放在模块范围内(例如全局变量)——如果不需要线程安全,这就是 pythonic 的方式来做你想做的事情。请记住:这不是 Java,对所有事物都使用类不是正确的方法。

但是,这里有一些代码只允许一个实例:

class MyClass:
def __init__(self):
if getattr(self.__class__, '_has_instance', False):
raise RuntimeError('Cannot create another instance')
self.__class__._has_instance = True

如果你想要单例,看看Python and the Singleton PatternIs there a simple, elegant way to define singletons?

关于python - 如何避免在 python 中创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com