我来自 Ruby,我已经习惯了 Python 遵循的“显式优于隐式”的哲学,但我之前对如何实际创建类方法感到困惑。现在,我想验证我在以下方面确实是正确的:
类中的每个方法本质上都是 Python 中的类方法。
例如:
class Employee(object):
employeeCount = 0
def __init__(self, name):
self.name = name
employeeCount += 1
def get_name(self):
return self.name
def get_employee_count():
return employeeCount
如果我理解正确,例如david = Employee("david")
以下两个是等效的:
david.get_name()
和Employee.get_name(david)
。同样,我们可以说是一个类方法也是有道理get_employee_count
的,但它不依赖任何实例,因此我们不传入实例。这就是 type 没有意义的david.get_employee_count()
原因,因为 this 会是Employee.get_employee_count(david)
,但get_employee_count
不接受参数,即实例。这得出结论,我们只需键入Employee.get_employee_count()
.
我的想法正确吗?谢谢你。