1分でPythonを学ぶ|オブジェクト指向(中国語)

[ 1分は、Pythonを学ぶために|オブジェクト指向(http://mp.weixin.qq.com/s?__biz=MzU2NTczODU3NA==&mid=2247489693&idx=2&sn=c06ae3c0aa4e8a0fb092f9e32fa1797f&chksm=fcb675bccbc1fcaa2b95a6c2da99705df2bda0aa9d0cc22e05b3370e133f68d4e2c86a5f186c&scene=21#wechat_redirect)](上)は、最後に続きますPythonのオブジェクト指向の学習を続ける

クラスメソッド

クラス内で、** def **キーワードを使用してメソッドを定義します。これは、一般的な関数定義とは異なります。

  1. classメソッドには、最初のパラメーターであるパラメーター** self **が含まれている必要があります。Selfはクラスのインスタンスを表します。
  2. メソッド呼び出しは、クラスをインスタンス化し、「インスタンス名。メソッド名(パラメーターリスト)」の形式で呼び出す必要があります。
  3. 全体として1つのユニットでインデントする必要があります
    以下はコード例です
# クラス定義
classpeople:
 # 基本的な属性を定義する
 name =''
 age =0
 # プライベート属性を定義する,クラス外から直接プライベートプロパティにアクセスすることはできません
 __ weight =0
 # 工法を定義する
 def __init__(self,n,a,w):
  self.name = n
  self.age = a
  self.__weight = w
 def speak(self):print("%sは言う:私%d歳。"%(self.name,self.age))
 
# インスタンス化されたクラス
p =people('ming',10,30)
p.speak()

上記のプログラムの出力は次のとおりです。

ミンは言う:私は10歳です。

継承

Pythonはクラスの継承もサポートしています。言語が継承をサポートしていない場合、クラスには意味がありません。派生クラスの定義は次のとおりです。

classDerivedClassName(BaseClassName1):<statement-1>...<statement-N>

BaseClassName(例では基本クラス名)は、派生クラスのスコープで定義する必要があります。クラスに加えて、式を使用することもできます。これは、基本クラスが別のモジュールで定義されている場合に非常に役立ちます。

classDerivedClassName(modname.BaseClassName):
# クラス定義
classpeople:
 # 基本的な属性を定義する
 name =''
 age =0
 # プライベート属性を定義する,クラス外から直接プライベートプロパティにアクセスすることはできません
 __ weight =0
 # 工法を定義する
 def __init__(self,n,a,w):
  self.name = n
  self.age = a
  self.__weight = w
 def speak(self):print("%sは言う:私%d歳。"%(self.name,self.age))
 
# 単一継承の例
classstudent(people):
 grade =''
 def __init__(self,n,a,w,g):
  # 親クラスコンストラクターを呼び出す
  people.__init__(self,n,a,w)
  self.grade = g
 # 親クラスのメソッドをオーバーライドします
 def speak(self):print("%sは言う:私%d歳、私は読んでいます%dグレード"%(self.name,self.age,self.grade))
 
 
 
s =student('ken',10,60,3)
s.speak()

上記のプログラムの出力は次のとおりです。

ケンは言う:私は10歳で、3年生です。

複数の継承

Pythonでは、複数の継承フォームのサポートも制限されています。複数継承のクラス定義は次のとおりです。

classDerivedClassName(Base1, Base2, Base3):<statement-1>...<statement-N>

括弧内の親クラスの順序に注意する必要があります。親クラスのメソッド名が同じで、サブクラスの使用時に指定されていない場合、pythonは左から右に検索します。つまり、メソッドがサブクラスに見つからない場合は、左から右に検索します。親クラスにメソッドが含まれているかどうか。

# クラス定義
classpeople:
 # 基本的な属性を定義する
 name =''
 age =0
 # プライベート属性を定義する,クラス外から直接プライベートプロパティにアクセスすることはできません
 __ weight =0
 # 工法を定義する
 def __init__(self,n,a,w):
  self.name = n
  self.age = a
  self.__weight = w
 def speak(self):print("%sは言う:私%d歳。"%(self.name,self.age))
 
# 単一継承の例
classstudent(people):
 grade =''
 def __init__(self,n,a,w,g):
  # 親クラスコンストラクターを呼び出す
  people.__init__(self,n,a,w)
  self.grade = g
 # 親クラスのメソッドをオーバーライドします
 def speak(self):print("%sは言う:私%d歳、私は読んでいます%dグレード"%(self.name,self.age,self.grade))
 
# 別のクラス、複数の継承の前の準備
classspeaker():
 topic =''
 name =''
 def __init__(self,n,t):
  self.name = n
  self.topic = t
 def speak(self):print("私の名前は%s、私はスピーカーです、そして私のスピーチのトピックは%s"%(self.name,self.topic))
 
# 複数の継承
classsample(speaker,student):
 a =''
 def __init__(self,n,a,w,g,t):
  student.__init__(self,n,a,w,g)
  speaker.__init__(self,n,t)
 
test =sample("Tim",25,80,4,"Python")
test.speak()   #メソッド名は同じであり、デフォルトでは、親クラスのメソッドが括弧内で最初に呼び出されます。

上記のプログラムの出力は次のとおりです。

私の名前はティムです。私はスピーカーです。私のスピーチのトピックはPythonです。

私はクルスです
WeChatに参加して交換し、よりエキサイティングな記事を読むことを学ぶことを歓迎します。あなたは私をフォローすることができます!
パブリックアカウントをフォローし、「pdf」と返信してください
オリジナルのDjangoとフラスコのチュートリアルのフルセットを受け取るルーチンはありません⬇️

Recommended Posts

1分でPythonを学ぶ|オブジェクト指向(中国語)
1分でPythonを学ぶ| Python関数(オン)
1分でPythonを学ぶ|オブジェクト指向(パート1)
Pythonのハードコア操作を1分で学ぶ
pythonのオブジェクト指向とは何ですか
Pythonでのガベージコレクションについて学ぶ
Pythonレビュー1
pythonの関数
Pythonオブジェクト指向の例
1つの画像フロー:Pythonのすべての組み込み例外
Pythonで正規表現を取得するための1つの記事
Pythonオブジェクト指向の基本
Pythonオブジェクト指向の魔法の方法
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Python3のルーチンについて学ぶ
Pythonでのコンテキスト管理
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用
PythonのStr文字列
Pythonでの計算ジオメトリ