検索
ホームページバックエンド開発Python チュートリアルLao Qi パート 4 から Python クラスの作成方法を学び、継承について説明します。

前回の講義のコードをベースに、さらに修正を加えた次のプログラムになります。
を読んで勉強してください。

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

クラスの人:
Def __init__(自分、名前、電子メール):
self.name = 名前
self.email = メール

クラス プログラマー(人):
Def __init__(自分自身、名前、電子メール、言語、システム、ウェブサイト):
person.__init__(自分,名前,メールアドレス)
self.lang = lang
self.system = system
self.website = ウェブサイト

クラス Pythoner(プログラマ):
Def __init__(自分,名前,メールアドレス):
Programmer.__init__(self,name,email,"python","Ubuntu","qiwsir.github.io")

if __name__=="__main__":
Writer = Pythoner("qiwsir","qiwsir@gmail.com")
「name=,writer.name
」を印刷します 印刷 "lang=",writer.lang
「email=,writer.email
」を印刷します 「system=,writer.system
」を印刷します 「website=,writer.website

」を印刷します

#実行結果

名前= qiwsir
lang=python
メールアドレス= qiwsir@gmail.com
システム= Ubuntu
ウェブサイト= qiwsir.github.io

結果には非常に満足しています。プログラム内の継承関係を見てみましょう: Pythoner

継承の問題の調査を強調するために、実験には引き続き単純なクラスを使用します。

エクストラB

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

クラス A:
Def __init__(self):
print "aaa"

クラス B(A):
パス

if __name__=="__main__":
a = A()
b = B()

#実行結果

ああ
ああ

B は A を変更せずに継承するため、B は何も書く必要がないか、B は本質的に冗長です。実際のプログラミングプロセスでは、このようには記述されません。これは、読者に継承の意味を示すためです。

コードをコピー コードは次のとおりです:

##最初の継承は有効です

#!/usr/bin/env python
#coding:utf-8

クラス A:
Def __init__(self):
print "aaa"

クラス B:
Def __init__(self):
print "bbb"

クラス C1(A,B):
パス

クラス C2(B,A):
パス

if __name__=="__main__":
「A--->」を印刷します、
a = A()
「B--->」を印刷します、
b = B()
Print "C1(A,B)--->",
c1 = C1()
Print "C2(B,A)--->",
c2 = C2()

#実行結果

あ--->ああ
B---> bbb
C1(A,B)--->ああ
C2(B,A)--->bbb

クラス C1 は 2 つのクラス A と B を継承し、クラス C2 も 2 つのクラスを継承しますが、書き込み順序が少し異なることに気づきました (B, A)。実行結果から、サブクラスが複数の親クラスを継承する場合、最初のコンストラクター __init__() のみを継承でき、2 番目のコンストラクターは待機することがわかります。したがって、通常の状況では、プログラム内でコンストラクターの同時多重継承は行われませんが、以前のより現実的なコードと同様に、リレー継承は行うことができます。

他のメソッドの継承

コードをコピー コードは次のとおりです:

#!/usr/bin/env python
#coding:utf-8

クラス A:
Def __init__(self):
print "aaa"
定義メソッド(自分):
print "メソッド a"

クラス B(A):
Def __init__(self):
print "bbb"


if __name__=="__main__":
「A--->」を印刷
a = A()
a.amethod()
「B--->」を印刷
b = B()
b.amethod()

#実行結果

A--->
ああ
メソッド a
B--->
bbb
メソッド a

上記の状況を説明するために、私は絵を描きましたが、描き終わった後、この絵を見てさらに混乱したように見えました。どうしても描いてしまいましたが、理解の助けになれば幸いです。

A のインスタンスと呼び出しについては詳しく説明しません。 B に注目します。クラス B は A を継承します。同時に、B はコンストラクター内で独自の規定を作成しました。つまり、B のコンストラクターは B の希望に従って実行され、A の内容は実行されません。ただし、A には、 amethod(self ) メソッドの場合、B はこのメソッドを継承します。このメソッドがクラス B のインスタンスを通じて呼び出されると、成功します: b.amethod()

メソッドの継承と呼び出しです。

いわゆる継承とは、対応する継承オブジェクトを最下位から最上位に探し、見つかったらそれを継承することです。同じ名前のものがあった場合はどうなりますか?どのような順序で検索すればよいでしょうか?

アプリケーション Web サイトの一文:

Pythonでは多重継承が可能ですので、このとき、サブカテゴリから検索し、左から右に同じ階層の親カテゴリを検索するという順序に注意してください。同じレベルの上位の親カテゴリを左から右に検索し、最上位のレベルに到達します。

コード例:

コードをコピー コードは次のとおりです:

クラス A(オブジェクト):
定義メソッド1(自身):
print('A.method1')

def メソッド 2(self):
print('A.method2')

クラス B(A):
定義メソッド3(自分):
print('B.method3')

クラス C(A):
定義メソッド2(自身):
print('C.method2')

def メソッド 3(self):
print('C.method3')

クラス D(B, C):
定義メソッド4(自身):
print('C.method4')

d = D()
d.method4() # D、C.method4
で見つかりました d.method3() # D->B の順序で見つかりました、B.method3
d.method2() # D->B->C の順序で見つかり、C.method2
d.method1() # D->B->C->A の順序で見つかり、A.method1

必ず実際の学習者に各クラスの各メソッドを比較してもらい、対応する出力結果を順番に見つけてもらいます。継承の順序を理解するため。学習には少しずつの積み重ねが必要です。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)