(100天2小时第四天)_init_()方法的作用

一、为什么一定要定义_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,并且,调用时,不用传递该参数。

猜你喜欢

转载自blog.csdn.net/zhangxue1232/article/details/109367105