首页 > 解决方案 > Python 在另一个 Python .py 文件中定义一个类方法

问题描述

由于可视化的方式,我想定义我为类之外的类编写的方法 - 特别是在另一个 .py 文件中。至少这是我们大学老师教我们组织代码的方式

有人可以告诉我如何定义,然后在另一个文件中调用函数 output_func() 吗?

我知道在 C++ 中可以通过键入 classname::functionname(Parameter) 然后在类中声明它,但我不知道 Python 中的方式。

我确信这是一个非常普遍和基本的问题;然而,我无法通过我的个人研究找到任何解决方案。话虽这么说,对不起,如果我刚刚问了一个重复的问题:)

非常感谢!

示例代码:

class MainClass():
    
    #The method that I would like to define in another file 
    def output_func():

        print("Hello World!")

标签: python

解决方案


这取决于你想怎么打电话output_func。如果你希望它是一个静态类方法,你可以这样定义它:

@staticmethod
def output_func():
    print("hello world")

from ModuleWithMainClass import MainClass
MainClass.output_func = output_func

# call like this
MainClass.output_func()

如果您想像output_func常规实例方法一样操作并具有对对象的内部访问权限,您可以像这样定义它:

def output_func(self):
    print(f"hello {self._name}")

from ModuleWithMainClass import MainClass
MainClass.output_func = output_func

# call like this
mc = MainClass()
mc.output_func()

跨多个文件拆分类定义是非常不符合 Python 的。我会重新考虑这是否是解决您问题的最佳方法。


推荐阅读