Введение
Здесь я хочу подробно объяснить параметр 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 | Ява | Представление |
---|---|---|
себя | это | Относится к вызываемому в данный момент объекту |
__в себе) | Стю конструктор | Ссылается на конструктор, который будет вызываться автоматически при создании экземпляра. |