Python は汎用性の高いプログラミング言語として、開発者がより簡潔で効率的なコードを作成できるようにするさまざまなツールを提供します。そのようなツールの 1 つがクラス メソッドです。この記事では、以下について詳しく説明します。
- クラスメソッドとは何ですか?
- クラスメソッドの利点と使用例。
- コード内でクラスメソッドを使用する方法。
1. クラスメソッドとは何ですか?
Python では、クラス メソッドは、クラスのインスタンスではなくクラス自体にバインドされるメソッドです。インスタンス固有のデータにアクセスし、self
パラメーターを受け取る標準のインスタンス メソッドとは異なり、クラス メソッドはクラスレベルのデータを扱い、cls
クラス自体を表す 1 つのパラメーターを受け取ります。
クラスメソッドを定義するには、@classmethod
デコレータを使用します。
class MyClass:
class_variable = "I'm a class variable"
@classmethod
def class_method_example(cls):
return cls.class_variable
2. クラスメソッドの利点と使用例
代替コンストラクター
クラス メソッドの最も一般的な用途の 1 つは、クラスのインスタンスを作成する別の方法を提供することです。例えば:
class Date:
def __init__(self, day, month, year):
self.day = day
self.month = month
self.year = year
@classmethod
def from_string(cls, date_string):
year, month, day = map(int, date_string.split('-'))
return cls(day, month, year)
date_obj = Date.from_string("2023-08-15")
この例では、3 つのパラメーター (日、月、年) を取るプライマリ コンストラクターを使用する代わりに、クラス メソッドを使用してfrom_string
文字列から Date オブジェクトをインスタンス化します。
クラスの状態を変更する
クラス メソッドを使用して、クラスレベルの属性を変更できます。
class MyClass:
setting = "default"
@classmethod
def set_setting(cls, new_setting):
cls.setting = new_setting
継承とメソッドのオーバーライド
サブクラスはクラス メソッドをオーバーライドでき、サブクラスに応じて適切なバージョンのメソッドを呼び出すことができます。
class Parent:
@classmethod
def speak(cls):
return "Parent speaking!"
class Child(Parent):
@classmethod
def speak(cls):
return "Child speaking!"
print(Parent.speak()) # 输出: Parent speaking!
print(Child.speak()) # 输出: Child speaking!
3. インスタンス化する必要がない
クラス メソッドの大きな利点は、クラス メソッドを呼び出すときにクラスのインスタンスを作成する必要がないことです。これらはクラス自体で直接呼び出すことができます。この機能により、クラス メソッドがコンストラクターの置換などのタスクのための強力なツールになります。
結論は
Python のクラス メソッドは、オブジェクトのインスタンス化の代替方法の提供、クラスレベルのデータの変更、サブクラスでのメソッドのオーバーライドの有効化に至るまで、さまざまな利点をもたらします。クラスメソッドを理解して利用することで、開発者はより組織化された効率的なオブジェクト指向コードを作成できます。
英語の原文を読む
AIのおすすめ本
AIは日々変化していますが、高層ビルは良好な基礎から切り離すことはできません。人工知能の原理と実践について学ぶことに興味がありますか? これ以上探さない!AI の原則と実践に関する書籍は、AI の世界について詳しく知りたい人にとって最適なリソースです。この分野の第一線の専門家によって書かれたこの包括的なガイドは、機械学習の基礎からインテリジェント システムを構築するための高度なテクニックまですべてをカバーしています。初心者であろうと経験豊富な AI 実践者であろうと、この本はあなたをカバーします。では、なぜ待つのでしょうか?
人工知能の原理と実践は、人工知能とデータ サイエンスのさまざまな重要なシステムの古典を包括的にカバーしています。
北京大学出版局、人工知能の原理と実践 人工知能とデータサイエンスの入門から習得まで 機械学習と深層学習アルゴリズムの原理を説明