【发布时间】:2017-04-13 21:13:13
【问题描述】:
假设我们在 Python 中有一个 Pet 类:
class Pet(object):
num_pets = 0
def __init__(self, name):
self.name = name
Pet.num_pets += 1
def speak(self):
print("My name's %s and the number of pets is %d" % (self.name, self.num_pets))
我希望 init 方法创建一个实例,同时更新类的属性。有没有比上面的代码更优雅的方法来做到这一点?我尝试将 self 和 cls 传递给 init 方法,然后在 num_pets 递增的地方引用 cls 而不是 Pet ,但这不起作用。
【问题讨论】:
-
我看到上面的代码已经足够优雅了。除非
num_pets是按类管理的属性。我看不出有什么明显的理由考虑在这里使用类方法的需要。
标签: python oop class-method