I.はじめに
ここでは、PythonとJava言語のアナロジーを使用して、Pythonのselfパラメーターと__init __(self)メソッドについて詳しく説明します。これにより、selfパラメーターと__init __(self)メソッドの理解を深めることができます。
あまりナンセンスではありません。例としてコードを使用してから、コードを使用してPythonのselfパラメーターと__init __(self)メソッドを理解してください。
ケースとして学生クラスを使用します。
2つ、PythonとJavaのアナロジー
- いくつかのヒント:
- selfは、クラスのインスタンスオブジェクトを表します
- selfは、現在呼び出されているオブジェクトを指します
2.1 Python
ケースの紹介:Stuクラスを作成します。属性は学生ID、名前、性別であり、メソッドは学生の情報を印刷することです。
class Stu:
def __init__(self,stuid,name,gender):
self.stuid = stuid
self.name = name
self.gender = gender
def info(self):
print('学号:{} 姓名:{} 性别:{}'.format(self.stuid, self.name, self.gender))
djk = Stu(123,'djk',1)
djk.info()
- 注釈:
- Selfは、現在呼び出されているインスタンスオブジェクトを指します。__init __(self)は、インスタンスオブジェクトの初期化を担当するクラスのコンストラクタです。
- 例:インスタンスオブジェクトdjkを初期化する場合、Pythonは自動的に__init __(self)メソッドを呼び出します。このとき、selfは作成されるオブジェクトdjkを表します。self.stuid= stuidの場合の意味:まず最初にSelfは現在のオブジェクトdjkを表し、self.stuidは現在のオブジェクトの属性stuidです。djkにはstuidの値123が割り当てられます。つまり、フォームの実際のパラメーターは互いに参加します。つまり、stuid <–> 123 、名前<–> 'djk'性別<–> 1。次に、djkオブジェクトはInfo(self)メソッドを呼び出します。実際、基になるコードはInfo(djk)ですが、Pythonは簡潔にするためにdjkを省略しており、djk.info()として直接記述できます。 djkのインスタンスオブジェクトに。
2.2 Java
public class Stu {
// attribute
private Integer numid;
private String name;
private boolean gender;
// function
public Stu(Integer numid, String name, boolean gender) {
this.numid = numid;
this.name = name;
this.gender = gender;
}
public void info(Stu stu){
System.out.println(stu.numid + stu.name + stu.gender);
}
// 测试
public static void main(String[] args) {
Stu djk = new Stu(123,"djk",false);
djk.info(djk);
}
}
ここでの主な紹介はPythonの自己パラメーターと__init __(self)メソッドであり、Java関連の知識の紹介はないため、ここでは対応する関係のみを示します。
Python | Java | 表現 |
---|---|---|
自己 | この | 現在呼び出されているオブジェクトを指します |
__init __(self) | Stuコンストラクター | インスタンス化されると自動的に呼び出されるコンストラクターを参照します |