ページへ戻る
− Links
印刷
Python/クラス定義
の編集 ::
NJF Wiki
xpwiki
:
Python
/
クラス定義
の編集
# u224ed0a の編集
ページ内容:
*継承 [#u224ed0a] 継承はクラス名の後の「()」の中に親クラスの名前を入れることで行います。 親クラスへのアクセスはそのままクラス名を指定するか、「super」関数を使います。 class ParentClass(object): def __init__(self): print "parent" def printType(self): print type(self) class ChildClass(ParentClass): def __init__(self): ParentClass.__init__(self) def printType(self): super(ChildClass,self).printType() childClass = ChildClass() childClass.printType() 結果 parent <class '__main__.ChildClass'> 「super」は親クラスの名前を知らなくても利用できるので、コピペしたときに親を参照したいのに別クラスを参照してしまったというような事故なども防げて何かと便利です。 しかし、クラスの定義のところで、「(object)」を付けた方が良いと書きましたが、もしこれを省略すると「super」が使えなくなります。 つまり「(object)」を指定することで、Pythonのobject型を継承していると判断され、それ特有の関数なども使えるようになるわけです。 Pythonでは全ての基本的なクラスは「object」を継承しているので、それにならってクラスを自作するときも「object」を継承しておくのがおすすめです。 ただし、小規模な開発でのクラス定義だと、さほどobjectを継承させるメリットは無いかも知れないので、場合によって調整してください。 また、Pythonは多重継承もサポートしています class Class1(Class2,Class3): ... ただし、多重継承は継承関係が複雑化したり名前の衝突が起きやすいことから嫌われる傾向にあります。メリットがはっきりしている場合を除けば避けた方が無難かも知れません。
編集の要約:
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