Python运行时访问模块函数或动态函数创建

2024-04-25 05:21:34 发布

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

我正在编写一个命令行python应用程序,我想访问运行时已知的模块函数

我已经从以下内容了解了在运行时动态创建函数:https://snipplr.com/view/17819/

但这种方法似乎不再有效

以下是一些非工作代码:

from domains import *


def execute(name, func, arg1, arg2):
    pass


def main():

    if sys.version_info < (3, 0):
        print("Detected Python 2.x, but code requires Python 3.x. Exiting")

    parser = argparse.ArgumentParser()
    parser.add_argument("-d", "--doms", help="dom name", type=str)
    parser.add_argument("-a", "--arg1", help="arg1 name", type=str)
    parser.add_argument("-b", "--arg2", help="arg2 name", type=str)
    args = parser.parse_args()

    dom = args.doms
    if dom in vars():
        func = vars()[dom].fn1
        execute(dom, func, arg1, arg2)
    else:
        print("{} not implemented!\n".format(dom))


if __name__ == "__main__":
    main()

最初,如果将代码放在if_uuuname_uuuu==main范围内,代码将正常工作。但将在main()函数范围内中断一次

任何指向更好(更具pythonic)方法的指针都将受到赞赏


Tags: 函数代码nameaddparserifmaintype