Pythonのクラス継承
26541 ワード
遠吠え、人々!今日、我々はオブジェクト指向プログラミングの領域から継承の広大な世界について少し学ぶつもりです.もしそうならば、ランブル、Palsに準備しましょう!
継承とは
おそらく、あなたは今あなたの小さいときにあなたの頬を引っ張ったとその最近亡くなったといくつかの彼女の親戚のための財産を残したあなたの古い不愉快なおしゃれで考えている.それがあなたのケースであるならば、あなたに私たちが異なる種類の遺産について話すつもりであると私に話させてください.
プログラミングの世界では、継承は、通常、親と呼ばれる別のクラスから、メソッドとプロパティのすべてをおそらく確実に継承できるクラスを定義することができます.
親クラスは継承されたクラスで、基底クラスとも呼ばれます.我々は通常スペイン語でパドルと呼びます.
このクラスは、派生クラスとしても知られている別のクラスからプロパティとメソッドを継承します.日誌.
親クラス生成
最初に親クラスを作り始めます.任意のクラスを親にすることができます.したがって、他のクラスとして正規クラスの構文と構造を使用してコードを記述します.
チャイルドクラス
私たちが自分のクラスの別のクラスから機能性と特性を統合したいなら、私たちが子供クラスを呼ぶこのクラスを作成するとき、あるいは、よりよく、La clase hijaをつくるとき、我々はパラメタとして親クラスまたはクラス・パドルを通過する必要があります.
以下の例では、最初のクラスメンバークラスから既存の親プロパティを使用して2つの新しいクラスを作成します.
さて、これはinit ()関数を使用して親クラスから継承を上書きすることで行うことができます.この関数は、クラスが新しいオブジェクトを作成するために使用されるたびに自動的に呼び出されます.以下の例でこれを見てみましょう.
超関数
オブジェクト指向プログラミングのマジックのいくつかを使用して、その秘密の力の1つを解凍するための時間が来ました.子クラスが親からすべてのメソッドとプロパティを継承できるようにするSUM ()という素晴らしい関数があります.
それが親の特性と能力を持つ私たちの子供と実際の生活で発生する場合は、なぜOOPのクラスをプログラミングでは、右の人々?
この関数を使用する場合、親要素の名前を使用する必要がない場合、親プロセスから自動的にメソッドとプロパティが継承されます.
追加プロパティとメソッド
ちょっと待ってください:このすべては大きくて、ものを鳴らしました、しかし、我々は方法の後で我々自身の方法と特性を加えることについてどうしますか?我々はまだそれを行うチャンスがありますか?
まあ、Pals、我々は実際にすることができます!次の例では、電話のプロパティを追加します.
実行可能な場合は常に、このクラスにメソッドを追加できます.次の更新例を見てみましょう.
最終ソースコード:
よろしくお願いします.あなたの冒険は、単一の継承を簡単に見ることから始まり、スーパークラスのメソッドやプロパティをSUM ()関数で簡単に呼び出す方法を学びました.
これは非常に深い話題の始まりであり、より興味深い特徴に満ちています.しかし、私たちは、少なくとも、この基本的な出発点をカバーするのに十分な情報を組み合わせることを試みました.
それをテストし、それを再生するあなたのための最終的なソースコードの下を見つけてください.必要に応じて投稿を更新するには、いくつかの他のアプローチやより良い解決策を使用してコメントを残してください.
最後に、しかし、少なくとも、あなたがパイソン愛好家であるならば、私は親切にあなたに私のPython and JavaScript YouTubeチャンネルチュートリアルを見て、我々のコミュニティが成長するのを援助するために可能であるときはいつでも予約するよう招待します.
今日、私の妹のKathyaに私の頭にパイソンをもたらすために特別な叫びを与えたいです.このイベントは、この素晴らしいプログラミング言語の美しさを聞いて話をした後、この記事を書くことにインスピレーションを得た.
🦄 あなたが本当にこの記事を考慮するならば、あなたを完全に助けました!
🔖 あなたが後でこの記事に関してチェックする必要があるならば.
🤔 あなたのコメント、あなたの意見は非常に重要なままにしてください.
継承とは
おそらく、あなたは今あなたの小さいときにあなたの頬を引っ張ったとその最近亡くなったといくつかの彼女の親戚のための財産を残したあなたの古い不愉快なおしゃれで考えている.それがあなたのケースであるならば、あなたに私たちが異なる種類の遺産について話すつもりであると私に話させてください.
プログラミングの世界では、継承は、通常、親と呼ばれる別のクラスから、メソッドとプロパティのすべてをおそらく確実に継承できるクラスを定義することができます.
親クラスは継承されたクラスで、基底クラスとも呼ばれます.我々は通常スペイン語でパドルと呼びます.
このクラスは、派生クラスとしても知られている別のクラスからプロパティとメソッドを継承します.日誌.
親クラス生成
最初に親クラスを作り始めます.任意のクラスを親にすることができます.したがって、他のクラスとして正規クラスの構文と構造を使用してコードを記述します.
# Represents any school member.
class SchoolMember:
def __init__(self, name, age):
self.name = name
self.age = age
print(f"Initialized SchoolMember for: {self.name}")
# Tell my details.
def tell(self):
print(f"Name: {self.name} Age: {self.age}")
わかった?それは、ハード、パルではなかった!今、我々は我々が我々が欲しいだけ使うことができる学校メンバーのこの青写真を持っています.しかし、私がちょうどもう一つのクラスをつくって、親構造をプラスしておきたいならば、何が起こるか、そして、私はそれを持ちたいかもしれません.さて、それは子供のクラスが日を保存する場所です.チャイルドクラス
私たちが自分のクラスの別のクラスから機能性と特性を統合したいなら、私たちが子供クラスを呼ぶこのクラスを作成するとき、あるいは、よりよく、La clase hijaをつくるとき、我々はパラメタとして親クラスまたはクラス・パドルを通過する必要があります.
以下の例では、最初のクラスメンバークラスから既存の親プロパティを使用して2つの新しいクラスを作成します.
# Represents a teacher.
class Teacher(SchoolMember):
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print(f"Initialized Teacher: {self.name}")
def tell(self):
SchoolMember.tell(self)
print(f"Salary: {self.salary}")
# Represents a student.
class Student(SchoolMember):
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print(f"Initialized Student: {self.name}")
def tell(self):
SchoolMember.tell(self)
print(f"Marks: {self.marks}")
記事のこの段階では、すでにクラスを持っていたときにどうするかを疑問に思うかもしれません.クラスとして独自の独立性を失うことなく、別のプロパティやメソッドを追加するのが好きでした.さて、これはinit ()関数を使用して親クラスから継承を上書きすることで行うことができます.この関数は、クラスが新しいオブジェクトを作成するために使用されるたびに自動的に呼び出されます.以下の例でこれを見てみましょう.
class Counselor(SchoolMember):
def __init__(self, name, age):
SchoolMember.__init__(self, name, age)
さて、init ()関数を正常に追加しました.親クラスの継承を維持しています.超関数
オブジェクト指向プログラミングのマジックのいくつかを使用して、その秘密の力の1つを解凍するための時間が来ました.子クラスが親からすべてのメソッドとプロパティを継承できるようにするSUM ()という素晴らしい関数があります.
それが親の特性と能力を持つ私たちの子供と実際の生活で発生する場合は、なぜOOPのクラスをプログラミングでは、右の人々?
この関数を使用する場合、親要素の名前を使用する必要がない場合、親プロセスから自動的にメソッドとプロパティが継承されます.
class Principal(SchoolMember):
def __init__(self, name, age):
super().__init__(name, age)
追加プロパティとメソッド
ちょっと待ってください:このすべては大きくて、ものを鳴らしました、しかし、我々は方法の後で我々自身の方法と特性を加えることについてどうしますか?我々はまだそれを行うチャンスがありますか?
まあ、Pals、我々は実際にすることができます!次の例では、電話のプロパティを追加します.
class Nurse(SchoolMember):
def __init__(self, name, age, phone):
SchoolMember.__init__(self, name, age)
self.phone = phone
あなたが気づいたかもしれないように、電話のプロパティを修正することはできませんし、看護師のクラスを作成するときには、クラスのオブジェクトを作成します.それで、問題は起こります:我々はそれにどのように非固定値を渡しますか?例として、init ()関数に引数を追加するだけです.実行可能な場合は常に、このクラスにメソッドを追加できます.次の更新例を見てみましょう.
class Nurse(SchoolMember):
def __init__(self, name, age, phone):
SchoolMember.__init__(self, name, age)
self.phone = phone
def greet(self):
print(
"Hello, ",
self.name,
".\nYour Age is ",
self.age,
" years old and your Phone is: ",
self.phone,
)
OK、十分な技術性:すでにこれらのクラスのいくつかのインスタンスを作成し、必要に応じてそれぞれのパラメータを追加することで、この不良少年をテストしましょう.# Let us put these babies in action by creating instances, shall we?
sm = SchoolMember("Bill Gates", 56)
t = Teacher("Guido Van Rossum", 64, 95000)
s = Student("Alvison Hunter", 41, 900)
c = Counselor("Mark Zuckerberg", 34)
p = Principal("Evan You", 23)
n = Nurse("Sarah Drasner", 24, 99887766)
次に、次のようにして、これらのインスタンスをすべて列挙してリストを作成する必要があります.# Declare an list containing all these instances
members = [t, s, c, p, n]
for member in members:
# Let's print each of their details
member.greet() if(member == n) else member.tell()
最終ソースコード:
よろしくお願いします.あなたの冒険は、単一の継承を簡単に見ることから始まり、スーパークラスのメソッドやプロパティをSUM ()関数で簡単に呼び出す方法を学びました.
これは非常に深い話題の始まりであり、より興味深い特徴に満ちています.しかし、私たちは、少なくとも、この基本的な出発点をカバーするのに十分な情報を組み合わせることを試みました.
それをテストし、それを再生するあなたのための最終的なソースコードの下を見つけてください.必要に応じて投稿を更新するには、いくつかの他のアプローチやより良い解決策を使用してコメントを残してください.
最後に、しかし、少なくとも、あなたがパイソン愛好家であるならば、私は親切にあなたに私のPython and JavaScript YouTubeチャンネルチュートリアルを見て、我々のコミュニティが成長するのを援助するために可能であるときはいつでも予約するよう招待します.
今日、私の妹のKathyaに私の頭にパイソンをもたらすために特別な叫びを与えたいです.このイベントは、この素晴らしいプログラミング言語の美しさを聞いて話をした後、この記事を書くことにインスピレーションを得た.
# Represents any school member.
class SchoolMember:
def __init__(self, name, age):
self.name = name
self.age = age
print(f"Initialized SchoolMember for: {self.name}")
# Tell my details.
def tell(self):
print(f"Name: {self.name} Age: {self.age}")
# Represents a teacher.
class Teacher(SchoolMember):
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print(f"Initialized Teacher: {self.name}")
def tell(self):
SchoolMember.tell(self)
print(f"Salary: {self.salary}")
# Represents a student.
class Student(SchoolMember):
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print(f"Initialized Student: {self.name}")
def tell(self):
SchoolMember.tell(self)
print(f"Marks: {self.marks}")
class Counselor(SchoolMember):
def __init__(self, name, age):
SchoolMember.__init__(self, name, age)
class Principal(SchoolMember):
def __init__(self, name, age):
super().__init__(name, age)
class Nurse(SchoolMember):
def __init__(self, name, age, phone):
SchoolMember.__init__(self, name, age)
self.phone = phone
def greet(self):
print(
"Hello, ",
self.name,
".\nYour Age is ",
self.age,
" years old and your Phone is: ",
self.phone,
)
# Let us put all of these babies in action by creating instances, shall we?
sm = SchoolMember("Bill Gates", 56)
t = Teacher("Guido Van Rossum", 64, 95000)
s = Student("Alvison Hunter", 41, 900)
c = Counselor("Mark Zuckerberg", 34)
p = Principal("Evan You", 23)
n = Nurse("Sarah Drasner", 24, 99887766)
# Declare an list containing all these instances
members = [t, s, c, p, n]
for member in members:
# Let's print each of their details
member.greet() if(member == n) else member.tell()
❤️ あなたがこの記事を楽しんだならば、それはより多くを書く動機づけます!🦄 あなたが本当にこの記事を考慮するならば、あなたを完全に助けました!
🔖 あなたが後でこの記事に関してチェックする必要があるならば.
🤔 あなたのコメント、あなたの意見は非常に重要なままにしてください.
Reference
この問題について(Pythonのクラス継承), 我々は、より多くの情報をここで見つけました https://dev.to/alvisonhunter/class-inheritance-in-python-4koaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol