Python中对象方法调用的另一种方法及其应用

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()也可以做到

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值