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.