如何访问 class 中 class 之前定义的函数名称

How to access to names of functions defined before a class within the class

让我们考虑以下文件 myfile.py

def f_1():
    print("Run !")

def f_2():
    print("Run, run !")

class Test():
    def __new__(cls):
        print("In the class", dir())

print("After class", dir())
Test()

我想访问其中的 class 之前定义的所有函数。内部目录是关于 class 而不是上面输出显示的文件。

After class ['Test', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'f_1', 'f_2']
In the class ['cls']

一个解决方案是在 class 之前添加一个全局常量 previousnames = dir() 但有更好的方法吗?

正如我在评论中所说:要明确,不要尝试进行动态函数发现。 dir 无论如何都不适合编程使用;它是用于交互式 shell.

的助手
def f_1():
    print("Run !")

def f_2():
    print("Run, run !")

for_Test = [f_1, f_2]

class Test():
    def __new__(cls):
        for f in for_Test:
            # Based on your linked question
            setattr(cls, f.name, f)