首页 Python 从Python dir()调用模块

从Python dir()调用模块

简短的问题 是否可以调用从 python dir()函数检索的模块? 背景 我正在构建一个自定义测试运行器,并希望能够根据字符串过滤器选择要运行的模块.有关理想用法,请参阅下面的示例. module_a.py def not_mykey_dont_do_this(): print I better not do thisdef myk

简短的问题

是否可以调用从
python dir()函数检索的模块?

背景
我正在构建一个自定义测试运行器,并希望能够根据字符串过滤器选择要运行的模块.有关理想用法,请参阅下面的示例.

module_a.py

def not_mykey_dont_do_this():
    print 'I better not do this'

def mykey_do_something():
    print 'Doing something!'

def mykey_do_somethingelse():
    print 'Doing something else!'

module_b.py

import module_a
list_from_a = dir(module_a) # ['not_mykey_dont_do_this','mykey_do_something','mykey_do_somethingelse']

for mod in list_from_a:
    if(mod.startswith('mykey_'):
        # Run the module
        module_a.mod() # Note that this will *not* work because 'mod' is a string

产量

Doing something!
Doing something else!

解决方法

getattr(module_a,mod)()

getattr是一个内置函数,它接受对象和字符串,并返回属性.

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/kaifa/python/20210221/17501.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部