Python クラスとオブジェクト。 パート 9 初心者から上級者までの Python コース 11 のブログ投稿
公開: 2022-01-25この記事は、読者が基本的な Python クラスと実際のいくつかの基本的なアプリケーションを理解するのに役立ちます。 コード エディターとして Visual Studio Code を使用します。 Visual Studio Code をインストールしていない場合は、最初のブログに手順が記載されています。
Python クラスとオブジェクト – 目次:
- Python クラス
- Python クラス – 定義
- Python クラスの初期化
- 最初の Python クラスを書きましょう
- 属性
- クラスの振る舞い
- Python のオブジェクト
- 継承
Python クラス
最初のブログで説明したように、Python はオブジェクト指向プログラミング言語です。 Python でのオブジェクト指向プログラミングについて議論する際に、非常に重要な 3 つのフレーズがあります。 1 つ目はクラス、2 つ目はオブジェクト、3 つ目は継承です。 クラスとは何かから始めましょう。
Python クラス – 定義
クラスは、オブジェクトの作成を支援する青写真または拡張可能なプログラムです。 クラスは、動作と状態で構成されます。 クラスの動作は、メソッドと呼ばれるクラス内の関数によって示されます。 クラスの状態は、属性と呼ばれるクラス内の変数を使用して示されます。
Python クラスの初期化
クラスは、次の構文を使用して初期化できます。
Python のクラスは、クラス名の後に「class」キーワードを使用して定義されます。 Python 関数の基本的な構文を以下に示します。
例えば:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Create a function # class Monkey class classname:
注:クラス名も変数宣言と同じ規範を持っています。
最初の Python クラスを書きましょう
# first class class Animals: pass
上記のコード ブロックでは、ブログでさらに開発する予定のクラスを記述しました。 ご覧のとおり、「class」キーワードを使用しています。
動物のクラスにコンポーネントを追加する方法を見てみましょう。 しかしその前に、「__init__()」コンストラクターについて学びましょう。 コンストラクターは、オブジェクトのインスタンス化に使用されます。 ここでは、オブジェクトのインスタンス化に __init__() が使用されています。 コンストラクターは、引数として自分自身のみを使用してデフォルトにすることも、必要な引数でパラメーター化することもできます。
属性
属性には 2 つの異なるタイプがあり、1 つ目はクラス変数で、2 つ目はインスタンス変数です。 クラス変数は、クラスが所有する変数です。 また、これらの変数は、クラスのすべてのインスタンスで使用できます。 したがって、インスタンスが変更されても、それらの値は変更されません。
# class variables class Animals: type=”mammals”
インスタンス変数は、インスタンス自体に属する変数です。 したがって、インスタンスが変更されると、値が変更されます。
# class variables class Animals: def __init__(self,legs): self.legs=legs
注:インスタンス変数は、アクセスするオブジェクトによって変わるため、クラス名を使用してアクセスすることはできません。
クラス変数とインスタンス変数の両方を宣言したプログラムを作ってみましょう。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs
上記のプログラムでは、インスタンス変数とクラス変数の両方を使用しました。 したがって、これらの変数はクラスの属性を形成します。
クラスの振る舞い
説明したように、クラスの動作はクラス内のメソッドによって定義されます。 しかし、動作についての議論に入る前に、__init__() で使用した「self」パラメータについて議論し始める必要があります。
自己:
非常に簡単に言えば、自分自身に何かを付けるたびに、変数または関数がそのクラスに属していることを示します。 また、「self」を使用すると、クラスの属性またはメソッドがアクセスできます。
方法:
クラスメソッドは、最初の引数が「self」であるクラス内の関数です。 クラス内のメソッドは、「def」キーワードを使用して定義されます。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”)
上記のメソッド「bark」では、インスタンス変数である name 変数を使用しているため、「self」を使用してアクセスしているため、この関数は「woof woof!!!」と出力します。オブジェクトは、犬です。
クラスのほとんどのコンポーネントについて説明しましたが、クラスが機能しているかどうかを確認する方法を考えているかもしれません。 これに対する答えは、クラスのオブジェクトを作成しない限り、クラスが何をしているかを見ることができないということです。 それでは、クラスのオブジェクトを定義して作成しましょう。
Python のオブジェクト
オブジェクトはクラスのインスタンスです。 クラスは単なる設計図ですが、オブジェクトは実際の値を持つクラスのインスタンスです。
オブジェクトを定義または作成するためのコードを以下に示します。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4)
オブジェクトを作成するための構文は、objectname=classname(arguments) です。 したがって、ここでは動物の名前を犬、足の数を 4 に指定しています。これで、クラスのオブジェクトが作成されました。次のステップは、オブジェクトを使用してその属性にアクセスすることです。 オブジェクトを使用してクラスの属性にアクセスするには、オブジェクトを使用してアクセスできるのはインスタンス変数のみであることを覚えておいてください。 このクラスのインスタンス変数は、名前と脚です。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs)
ご覧のとおり、ドット表記を使用してインスタンス変数にアクセスできます。
出力を見てみましょう。
#Output dog 4
クラスまたはメソッド内の関数にアクセスするには、ドット表記を使用します。 例を以下に示します。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark())
#Output dog 4 woof woof!!!
上記の例では、作成した犬オブジェクトを使用してクラス メソッド「bark」にアクセスしていることがわかります。 関数の引数で「self」パラメーターを使用していないことがわかります。 これは、オブジェクト自体が自己として機能するため、クラス外で「自己」を使用する必要がないためです。
継承
継承は、クラスの属性とメソッドを子クラスに渡すプロセスです。 子クラスの継承元のクラスが親クラスです。 継承の構文を以下に示します。
#Inheritance class parent: class child(parent):
上の図から、継承構文では、親クラス名を子クラスへの引数として配置していることがわかります。 Animals クラスを使用して、dog という子クラスを作成しましょう。 これを以下に示します。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed
上記のコード例では、以前に作成した動物クラスを拡張した犬クラスを作成しました。 また、dog クラスに継承される名前と脚を持つ Animals.__init__(arguments) を使用して、Animals のパラメーターを使用しています。 次に、品種である犬クラスのインスタンス属性を作成しています。
それでは、dog クラスのオブジェクトを作成し、animals クラスの属性とメソッドにアクセスしてみましょう。
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark()
#Output pug dog 4 woof woof!!!
出力からわかるように、親クラスの属性とメソッドは子クラス オブジェクトによってアクセスされています。
このブログでは、Python のクラスの基本について説明しました。 次のブログ投稿では、ファイル処理のトピックについて説明します。
初心者から上級者までの JavaScript コースもお勧めです。
11 のブログ投稿で初心者から上級者までの Python コース:
- Pythonコースの紹介。 パート 1 Python コースの初級者から上級者までの 11 のブログ投稿
- Python の変数とデータ型。 パート 2 初心者から上級者までの Python コースを 11 のブログ記事で紹介
- Python のタプル、リスト、セット、辞書。 Part 3 初心者から上級者までの Python コースを 11 のブログ記事で紹介
- Python セットと辞書。 第 4 部 11 のブログ投稿で初心者から上級者までの Python コース
- Python の条件ステートメント。 Part 5 初心者から上級者までの Python コース 11 のブログ投稿
- Python でのループ。 パート 6 初心者から上級者までの Python コース 11 のブログ投稿
- Python 関数。 Part 7 初心者から上級者までの Python コースを 11 のブログ記事で紹介
- Python の高度な機能。 Part 8 初心者から上級者までの Python コースを 11 のブログ記事で紹介
- Python クラスとオブジェクト。 パート 9 初心者から上級者までの Python コース 11 のブログ投稿
- Python のファイル。 パート 10 初心者から上級者までの Python コース 11 のブログ投稿
- 実際の Python アプリケーション。 パート 11 初心者から上級者までの Python コース 11 のブログ投稿