(100 días, 2 horas, cuarto día) El papel del método _init_ ()

1. ¿Por qué se debe definir el método _init_ ()? Veamos la diferencia entre definición e indefinido:

1.c es un objeto instanciado de C, si hay un método _init_ (), llame a C primero.

class A:
    def __init__(self):
        print("math")
class B:
    def __init__(self):
        print("hello")
class C(A,B):
    def __init__(self):
        print("world")
    def get(self):
        print("得到方法")

c=C()  #注意括号,要记得加括号,实例化时就会调用本身的方法

  

2. C es un objeto instanciado de C, si no hay un método _init_ () en C para llamar a la clase padre.

  Si C (A, B) entonces llama A, si C (B, A) llama B

class A:
    def __init__(self):
        print("math")
class B:
    def __init__(self):
        print("hello")
class C(A,B):
    #def __init__(self):
       # print("world")
    def get(self):
        print("得到方法")

c=C()  #注意括号,要记得加括号,实例化时就会调用本身的方法

 

3. Si no existe tal función en A, B, C, no hay salida.

class A:
    def a(self):
        print("math")
class B:
    def b(self):
        print("hello")
class C(A,B):
    #def __init__(self):
       # print("world")
    def get(self):
        print("得到方法")

c=C()  #注意括号,要记得加括号,实例化时就会调用本身的方法
print('都没有')

  

4. La función __init __ () en la clase se llama constructor, también llamado constructor, o función de inicialización. Su función es inicializar el valor predeterminado de la instancia pasada al inicializar la instancia. Si no escribe __init __ (), se llamará al __init __ () vacío predeterminado. Para decirlo sin rodeos, se llamará a este método sin importar si lo escribe o no, y se llamará una vez que se instancia.

Nota: ¡ __init__Hay dos guiones bajos antes y después de " "! ! !

Tenga en cuenta que __init__el primer parámetro del método es siempre self, que representa la instancia creada en sí. Por lo tanto, dentro del __init__método, varias propiedades se pueden vincular a self, porque self apunta a la instancia creada en sí.

Con un __init__método, al crear una instancia, no puede pasar parámetros vacíos, debe pasar __init__parámetros que coincidan con el método, pero no es necesario pasar self .

class Student():
    def __init__(self, name, score):
        self.name=name
        self.score=score

bart = Student('Bart Simpson', 59)
print(bart.name)
print(bart.score)

 

En comparación con las funciones ordinarias, las funciones definidas en la clase solo son diferentes, es decir, el primer parámetro es siempre la variable de instancia self, y no es necesario pasar este parámetro al llamar.

Supongo que te gusta

Origin blog.csdn.net/zhangxue1232/article/details/109367105
Recomendado
Clasificación