前回のクラスメソド @classmethod に続きましてスタティックメソド @staticmethonです。前回のを見てから、その流れでこちらを見ることをおすすめします。
こちらもまた、クラスをオブジェクト化していない場合に対するpythonの便利?機能です。
(1) @staticmethodをメソドの前行につけます。引数にselfは不要です。
(2) このメソドはクラスの外に丸ごと出してしまっても全く問題ありませんが、@staticmethodとしてクラスの内部に書くことによって、クラスPersonの仲間なんだよという意思を表現することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class Person(object): kind = 'human' def __init__(self): self.x=100 @classmethod def what_is_your_kind(cls): return cls.kind @staticmethod #引数にselfは不要 def about(year): print('about human {}'.format(year)) #動作確認 kenji4 = Person print(kenji4) # <class '__main__.Person'> kenji4.about(1999) # about human 1999 |
ぶっちゃけ、あんまり使おうとは思いませんが、色々な人のスクリプトを見ていると、出てきますので覚えた次第であります。
The following two tabs change content below.