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

Python 如何动态调用py文件

Python 如何动态调用py文件

慕莱坞森 2018-08-03 19:11:36
目的能够动态地调用不同py文件,传入参数并获得返回参数。下面是想象中的实现方法。a.py :path_file = 'b.py'    # 动态指定py文件位置para_in = 123para_out = xxx(path_file,para_in)    # 该函数是path_file(这里是b.py)文件里的函数,传入参数,返回参数赋给para_outb.py :def xxx(para):     执行方法(例: para += 1)    return para已知方法已经搜寻过能够实现类似的方法有几个,但都不够理想:import下面是用 import 实现「目的」描述的方法,但不能实现动态地加载py文件,且 Python PEP8 规范不建议 import 放在执行内容中:a.py :import b para_in = 123para_out = b.xxx(para_in)b.py :  def xxx(para):   执行方法(例: para += 1)  return paraexec()下面是用 exec() 实现「目的」描述的方法,但似乎不太“干净”,Pycharm 会警告在调用py文件的方法前,事先声明和py文件中同样函数名的函数(执行方法可以随意写,因为会被py中同名函数覆盖):a.py :def xxx(para):  returnpath_file = 'b.py'para_in = 123with open(path_file, 'r') as file:   exec(file.read())   para_out = xxx(para_in)b.py :def xxx(para):   执行方法(例: para += 1)  return para问题上面的方法虽然能实现「目的」,但似乎不够理想。所以问题是,是否有更好的办法实现「目的」?
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

谢邀,不知是否是这样

a.py

import importlib
b = importlib.import_module('b')
para_in = 123para_out = b.xxx(para_in)


查看完整回答
反对 回复 2018-08-05
  • 1 回答
  • 0 关注
  • 1410 浏览
慕课专栏
更多

添加回答

举报

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