Python在另一个Python.py文件中定义类方法

2024-09-26 22:54:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

有人能告诉我如何定义并稍后在另一个文件中调用函数output_func()吗

我知道C++中可以通过键入CordNo::函数名(参数),然后在类中声明它,但是我不知道Python中的方法。

我相信这是一个非常普遍和基本的问题;然而,我个人的研究并没有找到任何解决办法。尽管如此,如果我刚才问了一个重复的问题,我还是很抱歉:)

多谢各位

示例代码:

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

        print("Hello World!")

Tags: 文件方法函数代码pyoutput键入定义
3条回答

像这样的方法应该会奏效:

@staticmethod
def output_function():
    return "Hello World."

class MainClass:
    def __init__(self):
        pass

MainClass.output_function = output_function

mcl = MainClass()
print(mcl.output_function())
# Hello World.

这取决于您想如何调用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()

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

如果要使用不同文件中的类或函数,则必须导入它们(通常在当前文件的开头,但必须在使用它们之前进行定义)。是否尝试过import file然后使用file.yourfunction

相关问题 更多 >

    热门问题