Сомнения (3) ----- Глубоко понять параметр self и метод __init __ (self) в Python - по аналогии с языком Java

Введение

Здесь я хочу подробно объяснить параметр self и метод __init __ (self) в Python, используя аналогию между Python и языком Java. Это может углубить понимание параметра self и метода __init __ (self).
Ничего особенного, просто используйте код в качестве примера, а затем используйте код, чтобы понять параметр self и метод __init __ (self) в Python.
В качестве кейса мы используем студенческий класс.

Два, аналогия с Python и Java

  • Несколько советов:
  • self представляет объект-экземпляр класса
  • self относится к объекту, который в данный момент вызывается

2.1 Python

Введение в случай: создайте класс Stu, атрибуты - идентификатор студента, имя, пол, а метод - распечатать информацию об ученике.

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 (). Фактически, self все еще указывает к объекту экземпляра 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 self и метод __init __ (self), поэтому здесь нет введения в знания, связанные с Java, здесь даны только соответствующие отношения.

Python Ява Представление
себя это Относится к вызываемому в данный момент объекту
__в себе) Стю конструктор Ссылается на конструктор, который будет вызываться автоматически при создании экземпляра.

рекомендация

отblog.csdn.net/dongjinkun/article/details/113407809
рекомендация