Python 如何在两个类之间重用(静态)函数

Python 如何在两个类之间重用(静态)函数,python,python-3.x,class,inheritance,static-methods,Python,Python 3.x,Class,Inheritance,Static Methods,我想在两个类中重用一个函数 该函数不接受任何与类相关的参数,即不访问self 由于它的独立性,我想将它移到类定义之外,以便将来使用。将来的用法主要发生在类似的类中,如C类 我还想知道,如果未来的使用发生在整个项目中,我应该如何构造代码 我们的结构如下: A类:在文件类_A.py中 def static_funcpose1,pose2: 通过 类B:在另一个名为Class_B.py的python文件中 def static_funcpose1,pose2: 与A类中的功能相同 通过 C类:未来用途

我想在两个类中重用一个函数

该函数不接受任何与类相关的参数,即不访问self

由于它的独立性,我想将它移到类定义之外,以便将来使用。将来的用法主要发生在类似的类中,如C类

我还想知道,如果未来的使用发生在整个项目中,我应该如何构造代码

我们的结构如下:

A类:在文件类_A.py中 def static_funcpose1,pose2: 通过 类B:在另一个名为Class_B.py的python文件中 def static_funcpose1,pose2: 与A类中的功能相同 通过 C类:未来用途 还要使用静态函数吗
在这两个类中重用static_func的最佳方法是什么?

如果该函数只是从类本身调用的,并且不需要构成类的公共接口的一部分:根本不要将其作为方法。让它成为一个独立于任何类的函数

如果该函数是类的公共接口的一部分,即您希望其他代码执行a=a;a、 静态函数,然后使用mixin:

class FuncMixin:
    @staticmethod
    def static_func(...):
        ...

class A(FuncMixin):
    ...

class B(FuncMixin):
    ...

这不是一种静态方法。这只是一个定义不正确的实例方法。这些类不是要相互继承的吗?如果它们是staticmethods,那么只需在B.static\u func中调用A.static\u func。。。注意,静态方法在Python中不是很有用。为什么不使用正则函数呢?另外,您可能不应该创建像class_x.py这样的模块。。。python模块通常不是简单地存储单个类。巨蟒!=Java为什么不将“静态功能”导出到外部文件,然后导入它?你能澄清你的问题吗?如果它是一个函数,你不需要做任何特殊的事情就可以在多个地方使用它。