python中一般对象进行实例化的方式就是先创建类,再创建一个对象赋值为类加括号,于是便可以对类中的函数进行继承和调用。
如代码所示:
class Foo1:
def f1(self):
print('111')
obj1 = Foo1()
obj1.f1
#输出
111
这里要提到的是另一种不太常见的方法,这种写法其实和上面写法本质上相同,注意必须要手动传值了,在某些方面的应用中有用处。
class Foo2:
def f1(self):
print('222')
obj2 = Foo2()
Foo2.f1(self=obj2) #必须要手动传入self的值
#输出
222
如果不主动填入self,编辑器会主动报错:
TypeError: f1() missing 1 required positional argument: 'self'
用处1:用在主动调用指定类的方法上
class Foo1:
def f12(self):
print('111')
class Foo2:
def f12(self):
print('222')
class Foo3(Foo1, Foo2):
def f3(self):
print('333')
obj3 = Foo3()
obj3.f12()
#输出
111
对于多继承的类,obj3调用的是Foo1中的f12方法(输出222),那如果想调用Foo2中的f12方法,该如何操作呢?
Foo2.f12(self=obj3)
#输出
222
答案就是要通过类.方法进行主动调用,主动传参。那么还有没有别的方法呢,有的,super()也可以做到