私は 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")
次の 2 つは同等です。
david.get_name()
とEmployee.get_name(david)
。get_employee_count
同様に、もクラス メソッドであると言えますが、どのインスタンスにも依存しないため、インスタンスを渡さないのは理にかなっています。これが、 type が意味をなさない理由ですdavid.get_employee_count()
。なぜなら、これは になるEmployee.get_employee_count(david)
からですがget_employee_count
、パラメーター、つまりインスタンスを取り込まないからです。これは、タイプするだけであると結論付けていEmployee.get_employee_count()
ます。
私の考えは正しいですか?ありがとうございました。