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
    评论
### 回答1: 可以使用以下两种方法: 1. 将一个对象作为参数传递给另一个对象方法: ```python class Obj1: def obj1_func(self): print("This is the function of object 1.") class Obj2: def obj2_func(self, obj): obj.obj1_func() obj1 = Obj1() obj2 = Obj2() obj2.obj2_func(obj1) ``` 2. 通过类名直接调用另一个类的方法: ```python class Obj1: @staticmethod def obj1_func(): print("This is the function of object 1.") class Obj2: @staticmethod def obj2_func(): Obj1.obj1_func() obj2 = Obj2() obj2.obj2_func() ``` 注意:如果要调用方法是一个静态方法,则可以直接通过类名调用。如果是一个实例方法,则需要通过一个对象调用方法。 ### 回答2: 在Python,一个对象调用另一个对象里的方法可以通过访问对象属性来实现。例如,假设有两个对象obj1和obj2,其obj2具有一个名为method的方法,我们可以通过以下步骤调用obj2方法: 1. 首先,确保obj1拥有一个指向obj2的引用。这可以通过在obj1的初始化过程将obj2传递给相应的属性或变量来完成。 2. 然后,我们可以利用obj1对obj2的引用来访问obj2的方法。通过使用点号“.”来访问属性,我们可以在obj1调用obj2的方法。 例如,如果我们有一个类名为Person的对象obj1,并且在其有一个属性名为friend的对象引用,可以编写以下代码来实现调用obj2方法的过程: ``` class Person: def __init__(self, friend): self.friend = friend def call_friend_method(self): self.friend.method() ``` 在上述代码,我们的Person类具有一个名为call_friend_method的方法。该方法通过调用self.friend.method()来调用obj2的method方法。这里,self.friend代表obj1对obj2的引用。 通过这种方式,我们可以在Python实现一个对象调用另一个对象里的方法。这样的机制使得对象之间的交互和协作变得更加灵活和方便。 ### 回答3: 在Python,一个对象调用另一个对象里的方法可以通过以下几种方式实现: 1. 创建对象实例:首先,我们需要创建两个对象的实例。我们可以使用类定义创建对象实例,例如,使用类A和类B分别创建a和b两个对象实例。 2. 对象之间的关联:在这种情况下,对象a需要调用对象b的方法,所以对象a需要与对象b建立关联。可以通过对象属性将对象b赋值给对象a,例如,将对象b赋值给对象a的某个属性。 3. 调用方法:一旦对象a与对象b建立了关联,对象a就可以使用点号操作符(.)来调用对象b的方法,例如,a.b_method()。 总结起来,对象a通过与对象b建立关联,并使用点号操作符来调用对象b的方法。这样就实现了一个对象调用另一个对象里的方法。使用Python这种面向对象的语言,可以方便地实现对象之间的交互和方法调用,提高代码的可读性和灵活性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值