如何访问类

时间:2015-04-26 17:09:29

标签: python-3.x code-inspection

让我们考虑以下文件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()

我想访问我课程中定义的所有函数。内部dir是关于类的,而不是上面输出显示的文件。

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

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

1 个答案:

答案 0 :(得分:1)

正如我在评论中所说:要明确,不要尝试动态功能发现。 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)