ページへ戻る
− Links
印刷
Python/クラス定義
の編集 ::
NJF Wiki
xpwiki
:
Python
/
クラス定義
の編集
# o110c130 の編集
ページ内容:
*クラスメソッドとスタティックメソッド [#o110c130] Pythonではクラスメソッドとスタティックメソッドの両方が使えます。 記法としては「@classmethod」と「@staticmethod」というアノテーションを使います。 class StaticAndClassMethod(object): @classmethod def classMethod(cls): print "class method" @staticmethod def staticMethod(): print "static method" StaticAndClassMethod.classMethod() StaticAndClassMethod.staticMethod() 結果 class method static method クラスメソッドとスタティックメソッドの違いは、第一引数にクラスをとるかどうかです。 そのため、メソッドの中でクラスを使わないならスタティックメソッドを使うのが普通です。 しかし、クラス名を使えばスタティックメソッドから他のスタティックメソッドにアクセスできますし、クラスメソッドでクラスを使わないことも可能なので、明確に違いがあるというわけでもありません。実際、どちらかのみを実装しているPython以外の言語も多くあります。 使いどころとしては、似たような関数がたくさんある場合には、それを一つのクラスのメソッドにすると名前の衝突が起こりにくく、また同様の関数がまとまってわかりやすくなります。また、作ったクラスに関連した関数がある場合にはまとめると関連がわかりやすくなります。 しかし小規模開発なら関数の個数自体が少ないので、スタティックメソッドは使わず関数のみを使用しても十分でしょう。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「大阪」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2F%E3%82%AF%E3%83%A9%E3%82%B9%E5%AE%9A%E7%BE%A9