单实例类的类变量与实例变量
当创建只需要一个实例的 Python 类时,你可能会面临这样的困境存储类属性的位置:类变量或实例变量。这两种选项都有其优点和缺点。
实例变量
实例变量特定于类的每个实例。它们在 __init__ 方法中定义,如提供的第二个代码示例中所示:
class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass
优点:
缺点:
班级另一方面,变量
类变量在类的所有实例之间共享。它们是在 __init__ 方法之外定义的,如提供的第一个代码示例中所示:
class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass
优点:
缺点:
建议
如果您确定某个类只会有一个实例,通常建议使用实例变量。这提供了稍微更快的访问速度,并消除了重复属性的任何潜在混乱或问题。
以上是类变量或实例变量:哪个最适合 Python 中的单例类?的详细内容。更多信息请关注PHP中文网其他相关文章!