Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでクラス継承はどのように機能しますか?


クラスの継承

クラスを新たに定義する代わりに、新しいクラス名の後に括弧で囲まれた親クラスをリストすることにより、既存のクラスからクラスを派生させてクラスを作成できます。

子クラスはその親クラスの属性を継承し、それらの属性を子クラスで定義されているかのように使用できます。子クラスは、親のデータメンバーとメソッドをオーバーライドすることもできます。

構文

派生クラスは、親クラスとほとんど同じように宣言されます。ただし、継承する基本クラスのリストは、クラス名の後に示されています-

class SubClassName (ParentClass1[, ParentClass2, ...]):
   'Optional class documentation string'
   class_suite

#!/usr/bin/python

class Parent:        # define parent class
   parentAttr = 100
   def __init__(self):
      print "Calling parent constructor"
   def parentMethod(self):
      print 'Calling parent method'
   def setAttr(self, attr):
      Parent.parentAttr = attr
   def getAttr(self):
      print "Parent attribute :", Parent.parentAttr
class Child(Parent): # define child class
   def __init__(self):
      print "Calling child constructor"
   def childMethod(self):
      print 'Calling child method'
c = Child()          # instance of child
c.childMethod()      # child calls its method
c.parentMethod()     # calls parent's method
c.setAttr(200)       # again call parent's method
c.getAttr()          # again call parent's method

出力

上記のコードを実行すると、次の結果が生成されます-

Calling child constructor
Calling child method
Calling parent method
Parent attribute : 200

  1. Pythonファイルでアンダースコア_はどのように機能しますか?

    アンダースコア(_)はPythonでは特別です。 Pythonでアンダースコアを使用する場合は5つあります。 1.インタプリタに最後の式の値を格納するため。 Pythonインタープリターは、最後の式の値を「_」と呼ばれる特別な変数に格納します。 例 >>> 12 + 10 22 >>> _ 22 2.特定の値を無視するため。 アンダースコアは、elixir、erlang、pythonなどのいくつかの言語で特定の値を無視するためにも使用されます。特定の値が不要な場合、または値が使用されていない場合は、値をアンダースコアに割り当ててください。 例 >

  2. mkdir -pはPythonでどのように機能しますか?

    mkdir -pは、親が存在する場合でも再帰的なディレクトリ作成を作成できるようにするために使用されます。ディレクトリを再帰的に作成するには、作成するパスをos.makedirs(path)に指定します。ディレクトリを復元的に作成するには、exists_okをTrueとして指定して、既存のフォルダを許可する必要があります。 >>> import os >>> os.makedirs('my_folder/another/folder', exists_ok=True)