ホームページ > バックエンド開発 > Python チュートリアル > Pythonクラスのコンストラクターとは何ですか

Pythonクラスのコンストラクターとは何ですか

爱喝马黛茶的安东尼
リリース: 2019-06-25 16:58:29
オリジナル
10602 人が閲覧しました

Python マジック メソッド: __init__() メソッド。コンストラクター メソッドと呼ばれます。 __init__() メソッドの魅力は、オブジェクトがインスタンス化されている限り、オブジェクトの作成時にこのメソッドが自動的に呼び出されるということです。オブジェクトをインスタンス化するときにパラメータを渡すことができます。これらのパラメータは自動的に __init__() メソッドに渡されます。このメソッドをオーバーライドすることで、オブジェクトの初期化操作をカスタマイズできます。

概要: __init__() メソッドは、オブジェクトがインスタンス化されるときに呼び出される特別なメソッドであり、__init__() メソッドの機能は初期化です。

Pythonクラスのコンストラクターとは何ですか

例 1:

class Myclass:
    i = 123
    def __init__(self,friend):
        self.friend = friend
 
    def func(self,myself):    #带有参数的类方法
        self.myself = myself
        return self.myself +"say hello to " + self.friend
 
use_class = Myclass("xiaoming")
print("调用类的属性:",use_class.i)
print("调用类的方法:", use_class.func("xiaohong"))
ログイン後にコピー

出力結果:

#调用类的属性: 123
#调用类的方法: xiaohongsay hello to xiaoming
ログイン後にコピー

関連する推奨事項: "Python ビデオ チュートリアル "

1. __init__() メソッドを定義せずに Python でクラスを定義すると、クラスがインスタンス化されるときに、システムは自動的にデフォルトのコンストラクター (パラメーターなしの __init__() メソッド) を呼び出します。パラメータがあり、パラメータは __init__()

2 を通じてクラスのインスタンス化操作に渡されます。複数のコンストラクタ (__init__()) をクラス内に定義できますが、クラスをインスタンス化する場合にのみ定義されます。つまり、後のコンストラクターは前のコンストラクターを上書きし、最後のコンストラクターの形式に従ってインスタンス化する必要があります (パラメーターは最後のコンストラクターのパラメーターと一致します)。したがって、クラスにはコンストラクター メソッドを 1 つだけ定義することが最善です。

3. インスタンスの初期化には、インスタンス属性の定義と初期化、またはクラスのいくつかのメソッドの呼び出しが含まれます。

4. コンストラクターは、self 以外のさまざまなパラメーター (キーワード パラメーター、デフォルト パラメーター、タプルを使用してパラメーターを収集する、辞書を使用してキーワード パラメーターを収集するなど) を持つことができ、クラスをインスタンス化するときに使用できます。 、対応する実際のパラメータを渡します。

クラス内のオブジェクトが作成されると、コンストラクターがすぐに呼び出されます。

コンストラクタ メソッド init の使用法:

class FooBar:
    def __init__(self):
        self.somevar = 42
f = FooBar()
print f.somevar
(这里注意f = FooBar(),要带括号)
ログイン後にコピー

出力結果:

42
ログイン後にコピー

パラメータを使用した構築

class FooBar:
    def __init__(self,value=42):
        self.somevar = value
f = FooBar("this is a constructor argument")
print f.somevar
ログイン後にコピー

出力結果:

this is a constructor argument
ログイン後にコピー

以上がPythonクラスのコンストラクターとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート