我正在做一个项目,在这个项目中,用户可以在一个文件中定义函数(对redisdb执行操作,尽管这可能无关紧要)。这些文件将与许多其他类似文件放在一个文件夹中。考虑构建一个作用于Redis db的函数库,就像定制Redis命令一样。就添加新函数的能力而言,它可能类似于homebrew
。你知道吗
正如当前编写的那样,使用脚本的人将提供他们想要运行的函数的字符串表示,脚本将找到它并运行它。我希望主脚本能够遍历这个库目录中的文件,并使主脚本可以使用每个文件中的所有函数。你知道吗
我知道如何从函数名的字符串中调用函数。我不知道的是如何遍历这个目录中的文件和import
函数或使函数可供调用。你知道吗
现在,我只让它使用这样的代码来处理主脚本中定义的函数,其中command
是从命令行传递的函数名字符串:
possibles = globals().copy()
possibles.update(locals())
custom_method = possibles.get(command)
if custom_method:
print custom_method(r)
我脑子里还有一些问题,比如我是否应该强制所有库方法都存在于一个文件名相同的类中?那会不会让我想做的事情变得更简单?也许imp
模块和find_module
能帮上忙?你知道吗
Twitter上的一个追随者提出了这个解决方案:https://gist.github.com/1853553
importlib模块与
os
和os.path
一起是您需要的一旦加载了文件,就可以使用inspect模块和/或
dir()
建立可用函数/类/etc的列表相关问题 更多 >
编程相关推荐