如何在python promp中打印函数中的变量

2024-06-13 20:03:07 发布

您现在位置:Python中文网/ 问答频道 /正文

目录中有各种python文件,所有这些文件都包含一个函数description(),如下所示:

def description():
    desc = 'something'
    return desc

现在我有了主.py具体如下:

def a():
    pth = os.listdir('homedir/workspace')
    for filename in pth :
        exec "import " + filename
        desc = eval(filename + '.desciption()')
    print desc

现在当我运行python时主.py,什么也没发生。运行python时如何打印此描述梅因·皮伊? 提前谢谢!你知道吗


Tags: 文件函数py目录returnosdefdescription
3条回答

您未正确关闭此行中的引号:

pth = os.listdir('homedir/workspace)

此外,您不应在此处使用eval:

desc = eval(filename + '.desciption()')

我假设您想在这里通过变量导入:

        exec "import " + filename

它应该是这样的:

def a():
    import importlib

    pth = os.listdir('homedir/workspace')
    for filename in pth :
        mdl = importlib.import_module(os.path.splitext(filename)[0])
        desc = mdl.description()
        print desc

https://docs.python.org/2/library/importlib.html#importlib.import_module

https://docs.python.org/2/library/os.path.html#os.path.splitext

  1. 你错过了pth变量的结尾
  2. 您在最后一行引用了desc,但没有先声明它。
    desc = None开始函数

假设导入工作正常,并且您在每个迭代中都导入了一个名为filename的模块,那么您可以按名称获取模块,并调用其descrpition()方法:

import sys
mod = sys.modules[filename]
print mod.description()

但请注意,打印模块的pydocs可能更有意义:

print mod.__doc__

相关问题 更多 >