【发布时间】:2011-05-01 17:39:30
【问题描述】:
我以这种格式定义了一个 .py 文件:
foo.py
def foo1(): pass
def foo2(): pass
def foo3(): pass
我从另一个文件中导入它:
main.py
from foo import *
# or
import foo
是否可以列出所有函数名称,例如["foo1", "foo2", "foo3"]?
感谢您的帮助,我为我想要的课程做了一个课程,如果您有任何建议,请发表评论
class GetFuncViaStr(object):
def __init__(self):
d = {}
import foo
for y in [getattr(foo, x) for x in dir(foo)]:
if callable(y):
d[y.__name__] = y
def __getattr__(self, val) :
if not val in self.d :
raise NotImplementedError
else:
return d[val]
【问题讨论】:
-
这是个糟糕的主意。使用装饰器枚举你关心的函数。
-
感谢 Ignacio,但在我的情况下,在每个函数上添加一个 @push_to_list 可能会导致大量替换工作,你能告诉我为什么这是一个坏主意吗?
-
您可能不希望模块中的所有功能都可用。
标签: python python-module