在Python中,您可以调用A类的实例方法,但可以传入B类的实例吗?

发布于 2021-01-29 14:11:11

为了重用一些定义为不同类的实例方法的现有代码,我想做些类似的事情:

class Foo(object):
  def __init__(self):
    self.name = "Foo"

  def hello(self):
    print "Hello, I am " + self.name + "."

class Bar(object):
  def __init__(self):
    self.name = "Bar"


bar = Bar()
Foo.hello(bar)

但这导致:

TypeError:未绑定方法hello()必须以Foo实例作为第一个参数调用(取而代之的是Bar实例)

这样的事情可能吗?


我应该很清楚,我知道这是一个坏主意。显然,真正的解决方案是重构。我只是想必一定有办法,事实证明是有办法的。

感谢您的评论。

关注者
0
被浏览
86
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    看起来像这样:

    Foo.hello.im_func(bar)
    

    您好,我是酒吧。

    我想我需要阅读有点困难…



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看