前回のクラスメソド @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.
Keita N
最新記事 by Keita N (全て見る)
- 2024/1/13 ビットコインETFの取引開始:新たな時代の幕開け - 2024年1月13日
- 2024/1/5 日本ビジネスにおける変革の必要性とその方向性 - 2024年1月6日
- 2024/1/3 アメリカ債権ETFの見通しと最新動向 - 2024年1月3日