python : @classmethod

FAQTs – Knowledge Base – View Entry – What is a "classmethod" for? : "クラスメソッド"はなんのために? 参考。
hdknr@debiansept:~/openidtx/samples/pytx$ python
Python 2.4.4 (#2, Apr 15 2008, 23:43:20)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class hoge:
...    @classmethod
...    def foo(cls):
...       print cls
...       return hoge()
...
>>> x=hoge.foo()
__main__.hoge
>>> x
<__main__.hoge instance at 0xb7d980cc>
>>> dir(x)
['__doc__', '__module__', 'foo']

>>> class hoge:
...   @classmethod
...   def foo(cls,msg):
...      print cls,msg
...      return hoge
...
>>> x=hoge.foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: foo() takes exactly 2 arguments (1 given)
>>> x=hoge.foo('right?')
__main__.hoge right?
>>> dir(x)
['__doc__', '__module__', 'foo']
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中