python构造方法报错_python知识点——构造函数

构造函数

python 中的构造函数是__init__()函数。用于类的实例化,当一个对象被创建时,就会立刻被调用,有且只能执行一次。

class A():

def __init__(self):

print("A1")

执行:a=A()

输出: A1

1.构造函数可以不写,不写时会调用默认的构造函数:

class A():

pass

执行:a = A()

输出:

2.构造函数可以传入参数,在初始化时需要赋值,否则会报错。可以赋值默认值。

class A():

def __init__(self,name):

print(name)

执行:a=A(“A2”)

输出:A2

重写构造方法

1.当父类有构造方法,子类不重写构造方法时:

class A():

def __init__(self):

print("A1")

class B(A):

pass

执行:b = B()

输出:A1

2.当父类构造方法有参数时,子类不重写构造方法时:程序会报错

class A():

def __init__(self,name):

print(name)

class B(A):

pass

执行:b = B()

报错

3.当子类重写父类的构造方法时,父类的构造方法不再默认的被调用。

class A():

def __init__(self):

print("A1")

class B(A):

def __init__(self):

print("B1")

执行:b = B()

输出:B1

4.当需要父类的构造方法时:

class A():

def __init__(self):

print("A1")

class B(A):

def __init__(self):

super().__init__() # 方法一

# super(B,self).__init__() # 方法二

# A.__init__(self) # 方法三

print("B1")

b = B()

输出:A1,B1

方法一,二,三都可以调用父类的构造方法。最常用的还是方法一。

当父类的构造方法含有参数时,需要在方法一,二,三中的__init__(参数1,参数2…)传递参数

5.当多继承时,会调用哪个父类的构造方法呢?

python的有个对父类的执行顺序c3算法,可调用mro()方法查看

class A():

def __init__(self):

print("A1")

class C():

def __init__(self):

print("C1")

class B(A,C):

def __init__(self):

super().__init__() # 方法一

# super(B,self).__init__() # 方法二

# A.__init__(self) # 方法三

print("B1")

执行:b = B()

执行:print(B.mro())

输出:A1,B1

输出:[, , , ]

标签:__,知识点,构造方法,python,self,init,print,class,构造函数

来源: https://blog.csdn.net/qq_39489231/article/details/98661104

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值