Pythonのselfキーワードとは何ですか?

質問者:Chakira Husseck |最終更新日:2020年2月18日
カテゴリ:テクノロジーおよびコンピューティングプログラミング言語
4.9 / 5 (61ビュー。42投票)
selfは、クラスのインスタンスを表すために使用されます。このキーワードを使用すると、 Pythonのクラスの属性とメソッドにアクセスできます。指定された引数で属性をバインドします。 Pythonには、インスタンスを自動的に渡すが、自動的には受け取らないようにするメソッドがあります。

ここで、Pythonのdef __ init __(selfとは何ですか?

Pythonでのキーワードで自己は、クラス内のすべてのインスタンスに使用されています。 selfキーワードを使用すると、メソッドや属性を含め、クラス内で定義されているすべてのインスタンスに簡単にアクセスできます。 init__init__は、 Pythonで予約されているメソッドの1つです。オブジェクト指向プログラミングでは、コンストラクターと呼ばれます。

上記のほかに、Pythonの__クラス__とは何ですか?自己。 __class__は、現在のインスタンスのタイプへの参照です。 abstract1のインスタンスの場合、それはあなたが抽象クラスにしたくないものですabstract1クラス自体、だろう。

また、Pythonで自分自身を渡さなければならないのはなぜですか?

selfを使用すると、インスタンス属性(およびメソッド)とローカル変数を簡単に区別できます。 xはインスタンス属性ですが、xはローカル変数です。それらは同じではなく、異なる名前空間にあります。多くの人、C ++やJavaのように、 Python自分自身をキーワードにすること提案しています。

自己はこれと同じですか?

技術的には、 selfとthisの両方が同じ目的で使用されます。これらは、現在のインスタンスに関連付けられている変数にアクセスするために使用されます。唯一の違いは、Pythonのインスタンスメソッドの最初のパラメータとしてselfを明示的に含める必要があるのに対し、Javaの場合はそうではないということです。

30の関連する質問の回答が見つかりました

インスタンスとはどういう意味ですか?

オブジェクト指向プログラミング(OOP)のインスタンスは、任意のオブジェクトの特定の実現です。オブジェクトはさまざまな方法で変更できます。そのオブジェクトの実現された各バリエーションはインスタンスです。実現されたインスタンスの作成は、インスタンス化と呼ばれます。プログラムが実行されるたびに、それはそのプログラムのインスタンスです。

Pythonでは__init __が必要ですか?

いいえ、クラスでinitを使用する必要はありません。これは、クラスの呼び出し時にデフォルト値を定義するオブジェクトコンストラクターです。 OOP方式でプログラミングしていて、クラスの基本構造を持っている必要がある場合。多くの場合、これが必要になります。

Pythonオブジェクト指向ですか?

はい、 Pythonオブジェクト指向プログラミング言語です。あなたは以下のpythonについてのすべてを学ぶことができます:Pythonはオブジェクトされている-それは存在していたので、指向言語。このため、クラスとオブジェクトの作成と使用は非常に簡単です。

Pythonのsuper()__ Init__とは何ですか?

スーパークラス(Square)の__init __ ()が自動的に呼び出されます。 super()はデリゲートオブジェクトを親クラスに返すため、必要なメソッドsuper()を直接呼び出します。エリア()

Pythonの__新しい__とは何ですか?

Pythonはオブジェクト指向言語であり、すべてがpythonのオブジェクトです。メソッド__new__はインスタンスの作成を担当するため、このメソッドを使用してオブジェクトの作成をカスタマイズできます。通常、メソッド__new__は、作成されたインスタンスオブジェクト参照を返します。

スーパー()はPythonで何をしますか?

Pythonスーパー関数、親クラスを ' superで参照できるようにするプロキシオブジェクトを返す組み込み関数です「Python関数はどちらかの親や兄弟クラスから継承されるメソッドへのアクセスを、得るために使用することができます。

クラスのインスタンスとは何ですか?

オブジェクトは、クラスのインスタンスであり、クラスインスタンスまたはクラス・オブジェクトを呼び出すことができます。その場合、インスタンス化は構築とも呼ばれます。いないすべてのクラスをインスタンス化することができます-インスタンス化することができるクラスは具象クラス呼ばれながら、抽象クラスは、インスタンス化することはできません。

PythonのOOPとは何ですか?

PythonでのOOPの概要
Pythonはマルチパラダイムプログラミング言語です。つまり、さまざまなプログラミングアプローチをサポートします。プログラミングの問題を解決するための一般的なアプローチの1つは、オブジェクトを作成することです。これは、オブジェクト指向プログラミング( OOP )として知られています。

Pythonでは自己必須ですか?

"、しかしPythonでは" self 。 "は常に必要です。その理由は、Pythonの変数を宣言するための明示的な構文を持っていないということですので、X = 7は、メンバ変数に新しいローカル変数や代入を宣言することになっている場合。自己を指定する指示する方法はありません。

Pythonで二重アンダースコアとはどういう意味ですか?

二重アンダースコアプレフィックスにより、 Pythonインタープリターは、サブクラスでの名前の競合を回避するために属性名を書き換えます。これは名前マングリングとも呼ばれます。インタープリターは、クラスが後で拡張されたときに衝突を作成しにくくする方法で変数の名前を変更します。

DjangoのSelfとは何ですか?

Djangoはメタクラスを使用して、提供したクラス定義に基づいて実際のクラスを作成します。クラス変数の代わりに、インスタンス変数使用して、直接あなたの質問に答えるために(オブジェクトを。自己)メタクラスは、最初のインスタンス化することをせずにクラス属性を検査することができます。

静的メソッドとは何ですか?

Javaでは、静的メソッドは、クラスのインスタンスではなく、クラスに属するメソッドです。メソッドはクラスのすべてのインスタンスにアクセスできますが、インスタンスで定義されたメソッドには、クラスのそのメンバーだけがアクセスできます。

PythonのKwargsとは何ですか?

** kwargsPythonの関数定義の特別な構文** kwargsは、キーワード付きの可変長引数リストを渡すために使用されます。二重星の付いたkwargsという名前を使用します。その理由は、二重星を使用すると、キーワード引数(および任意の数)を渡すことができるためです。

PythonのLambdaとは何ですか?

Pythonでは、ラムダ関数は名前なしで宣言された1行の関数であり、任意の数の引数を持つことができますが、式は1つしか持つことができません。このような関数は、 Pythonのdefキーワードを使用して宣言された通常の関数と同様に動作することができます。

Pythonの自己変数とは何ですか?

Python自己変数は、クラスのインスタンスをインスタンスメソッドにバインドするために使用されます。この変数は、インスタンスメソッドでのみ使用されます。ほとんどのオブジェクト指向プログラミング言語では、メソッドパラメータとして明示的に持つ必要なしに、メソッド内の現在のオブジェクトにアクセスできます。

Pythonのクラス状態とは何ですか?

Pythonでの状態状態は、オブジェクトの内部状態が変化したときにオブジェクトが動作を変更できるようにする動作設計パターンです。このパターンは、状態関連の動作を個別の状態クラスに抽出し、元のオブジェクトがそれ自体で動作するのではなく、これらのクラスのインスタンスに作業を委任するように強制します。

Pythonのポリモーフィズムとは何ですか?

ポリモーフィズムとメソッドのオーバーライド
文字通りの意味で、ポリモーフィズムはさまざまな形をとる能力を意味します。 Pythonではポリモーフィズムを使用すると、親クラスで定義されているのと同じ名前で子クラスのメソッドを定義できます。ご存知のように、子クラスは親クラスからすべてのメソッドを継承します。