class.latest是什么意思?
class.latest是什么意思?
我有Python类,在运行时只需要一个实例,因此每个类只需要一次属性而不是每个实例一次。如果有多个实例(这不会发生),所有实例应具有相同的配置。我想知道以下选项中哪个更好或更符合Python的“惯用法”。
类变量:
class MyController(Controller): path = "something/" children = [AController, BController] def action(self, request): pass
实例变量:
class MyController(Controller): def __init__(self): self.path = "something/" self.children = [AController, BController] def action(self, request): pass
class.latest这个问题的出现原因是关于类属性和实例属性的使用。文章提到,在大部分情况下,我们应该使用实例属性,而将类属性保留给特殊情况。使用类属性最常见的情况是定义方法,另外一种常见的情况是将类属性作为只读常量供实例访问。然而,文章也提醒我们要谨慎在类属性中存储状态,因为这很少是我们想要的。即使只有一个实例,我们也应该像处理其他情况一样编写类,通常意味着使用实例属性。
解决这个问题的方法是遵循Python的编码规范和自己的思考。文章提到,Google的Python编码规范建议避免使用全局变量,而使用类变量。但是这个规范也有例外情况。Python的官方编码规范(PEP-8)应该是首选的参考,然后可以再参考Google等其他资源。
我们在编写代码时应该优先考虑使用实例属性,只有在特殊情况下才使用类属性。遵循编码规范和自己的思考是解决这个问题的关键方法。