一、为什么一定要定义_init_()方法,先来看看定义和不定义的区别:
1.c是C的实例化对象,如果有_init_()方法先调用C的。
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是C的实例化对象,如果C中没有_init_()方法调用父类的。
若C(A,B)则调用A的,若C(B,A)则调用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.若A,B,C中都没有该函数,就没有输出。
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.在类中__init__()函数叫构造函数,又叫构造方法,也可以叫初始化函数。它的作用就是初始化实例时,初始化传入实例的的默认值。如果不写__init__(),就会调用的默认为空的__init__(),说白了,这个方法不管你写不写,都会调用,而且,一旦实例化就会调用。
注意:“__init__”前后分别有两个下划线!!!
注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。
有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但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)

和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。
本文详细探讨了Python中`__init__`方法的作用和使用。`__init__`作为构造函数,用于初始化实例的默认值。当创建类的实例时,如果没有定义`__init__`,会调用父类的构造方法。如果类及其父类均未定义`__init__`,则无任何输出。实例化时,`__init__`的self参数指向实例本身,可以在此设置实例属性。
4479

被折叠的 条评论
为什么被折叠?



