ページへ戻る
− Links
印刷
Python/クラス定義
の編集 ::
NJF Wiki
xpwiki
:
Python
/
クラス定義
の編集
# u61fc2c4 の編集
ページ内容:
*基本 [#u61fc2c4] クラスの定義は「class」で行います。 クラス名の後には「(obect)」を付けます。 これは省略可能ですが、継承などで一部の記法が使えなくなるので付けるようにするのがオススメです。 メソッドの定義は「def」です。 コンストラクタは「__init__」で、インスタンス化に「new」は不要です。 class TestClass(object): def __init__(self): print "construct!" testClass = TestClass() 結果 construct! また全てのメソッドは「self」を引数としなければならず、これは自身のインスタンスを表します。 他の言語で言うところの「this」とほぼ同じです。 class TestClass(obect): def whatIsSelf(self): print type(self) print self testClass = TestClass() testClass.whatIsSelf() 結果 <class '__main__.TestClass'> <__main__.TestClass object at 0x10bcdb8d0> この「self」を使ってクラス内のメソッドを呼びます。 多くの他言語の「this」と違って、省略することはできません。 class CallMethod(obect): def method1(self): print "method1 called" def method2(self): self.method1() callMethod = CallMethod() callMethod.method2() 結果 method1 called クラス変数も定義できます。 クラス変数はクラス名でも「self」を含むインスタンスからでも参照可能です。 class ClassVariables(obect): a = 1 b = 2 def __init__(self): print self.b self.a = 10 self.c = 11 classVariables = ClassVariables() print ClassVariables.a print classVariables.a print classVariables.c 結果 2 1 10 11 ここでインスタンスでそのクラス変数を参照するときには、もしインスタンスでその変数を変更していなければ初期値を参照し、そうでなければ変更後の値を参照します。また、インスタンスの変数はメソッドの中で始めて定義することもできます。 言い換えれば、インスタンスの変数はメソッドで代入したときに始めて定義され、その後はクラス変数よりインスタンスの変数を優先して参照すると言うことです。 これは他のprototype型のクラス定義を採用している言語と同様です。
編集の要約:
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