1、super()只能用于新式类中
所谓新式类,旧类的,关键就是看是不是有基类,有基类的就是形式类,比如class A(object),所以class A()自然就是旧式类了。
# 单继承 class A(object): def __init__(self, a, b): self.a = a self.b = b def sayHello(self): print('this is class A, a={},b={}'.format(self.a, self.b)) class B(A): def __init__(self, a, b, c): super(B, self).__init__(a,b) self.c = c def sayHello(self): super(B, self).sayHello() print('this is b call') b = B('b','also b','test') b.sayHello() # this is class A, a=b,b=also b # this is b call
2、super 其实和父类没有实质性的关联
多重继承下,super就没有那么简单了。
# 多重继承 class Base(object): def __init__(self): print('enter Base') print('out Base') class A(Base): def __init__(self): print('enter A') super(A, self).__init__() print('out A') class B(Base): def __init__(self): print('enter B') super(B, self).__init__() print('out B') class C(A, B): def __init__(self): print('enter C') super(C, self).__init__() print('out C') c = C() #enter C #enter A #enter B #enter Base #out Base #out B #out A #out C
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
在 Python 中,如果 ws.send_text("1") 必须等待 load_dataset("beans") 加载完毕后才执行,这通常是因为代码中使用了某种形式的异步或并发控制机制。以下是几种可能的原因和解决方案:同步代码执行: 如果代码是同步执行的,那么 load_dataset("beans") 会在 ws.send_text("1") 之前完成,因为 Python 的代码是按顺序执行的。这种情况下,不需要额外的机制来确保顺序。load_dataset("beans") ws.send_tex
构建 API 让您的营销电子邮件远离垃圾邮件
如何构建大型烧瓶应用程序 - 5 人最佳实践
Python sys.modules详解:添加到sys.modules的模块是否已加载到内存?重启后数据如何?
如何用loguru打印变量值及错误堆栈信息?
Python如何控制机器人推杆?