class Person(object):
kind = 'human'
def __init__(self):
self.x = 100
@classmethod
def what_is_your_kind(cls):
return cls.kind
@staticmethod
def about(year):
print('human about {}'.format(year))
print(Person.what_is_your_kind())
Person.about(1999)
実行結果
human
human about 1999
Person.what_is_your_kind()
で
Person()
となっておらずオブジェクトができていないので、
本来はエラーとなる。
しかし、
what_is_your_kind
をクラスメソッドにする事で、
what_is_your_kind
オブジェクトのメソッドではなく、
クラスのメソッドとなりアクセスできる様になる。