为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Python 中以编程方式调用函数也以编程方式指定模块?

如何在 Python 中以编程方式调用函数也以编程方式指定模块?

有只小跳蛙 2021-09-14 20:57:04
我不能用这个import foomethod_to_call = getattr(foo, 'bar')result = method_to_call()因为模块名称是硬编码的,我不能使用它module = __import__('foo')func = getattr(module, 'bar')func()因为模块是嵌套的。我试过这个customer = 'jci'module = __import__('customer.{customer_name}.gt'.format(customer_name=customer_name)) # AttributeError: module 'customer' has no attribute 'get_gt'#module = __import__('customer.{customer_name}'.format(customer_name=customer_name), fromlist=['gt']) # AttributeError: module 'customer.jci' has no attribute 'get_gt'#module = __import__('customer.{customer_name}.gt'.format(customer_name=customer_name), fromlist=[]) # AttributeError: module 'customer' has no attribute 'get_gt'func = getattr(module, 'get_gt')gt = func()    但因错误而失败,在注释中与每个变体一起指定。get_gt()是目录内gt.py文件内的函数customer/jci。每个目录__init__.py里面都是空的。以下硬编码代码有效:import customer.jci.gt as ggt = g.get_gt()如何克服?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信