从两个不同的类中访问相同的函数

3

我有两个类,假设是A和B。在B类中,我实例化了A类。

我有一个函数func(),这两个类都需要使用。

我该怎么做?我曾考虑过以下方法:

class A:
   func()

class B:
   x = A()
   func()

def func():

然后我可以从A或B中访问func()。这种方法可行吗,还是有更好的方法(也许使用面向对象的方法)?

请注意,我是新手,想知道是否可以将任何面向对象的设计应用于此。

编辑:函数可以在其接受的参数方面有所不同。


可能是重复的问题:在Python中从一个类中的另一个类调用方法 - S.Lott
那个古怪的语法是怎么回事?为什么你在类声明中调用一个函数? - user193476
2个回答

1

在定义类之前定义func,这样它将对两者都可用。


这是一个好的实践吗?还是这是设计不良的结果。 - Chris
据我所知,这是最简单的方法,正如Python禅宗所说:“简单胜于复杂。” - Alex Bliskovsky
2
@Chris:可能好,也可能不好。这取决于func是什么以及类是什么。在Python中,像这样的模块级函数并不像在Java中那样非法(尽管我应该指出,Java人员有几种可以解决此问题的模式),并且模块级函数在标准Python库中确实被广泛使用。 - Owen S.
一般来说,这很好。在Python中,模块级函数是标准实践。 - Katriel
通用的函数不需要绑定到一个类,适合在模块中全局使用,特别是当它具有超出其自身模块范围的潜在用途时(使用该模块代码的应用程序部分也可以找到用途)。 - Filip Dupanović

0

这里的func可以是一个公共基类的方法

class Base(object):
    def func():
        #...
class A(Base):
    #...
class B(Base):
    #...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接