目的能夠動態(tài)地調(diào)用不同py文件,傳入?yún)?shù)并獲得返回參數(shù)。下面是想象中的實(shí)現(xiàn)方法。a.py :path_file = 'b.py' # 動態(tài)指定py文件位置para_in = 123para_out = xxx(path_file,para_in) # 該函數(shù)是path_file(這里是b.py)文件里的函數(shù),傳入?yún)?shù),返回參數(shù)賦給para_outb.py :def xxx(para):
執(zhí)行方法(例: para += 1) return para已知方法已經(jīng)搜尋過能夠?qū)崿F(xiàn)類似的方法有幾個(gè),但都不夠理想:import下面是用 import 實(shí)現(xiàn)「目的」描述的方法,但不能實(shí)現(xiàn)動態(tài)地加載py文件,且 Python PEP8 規(guī)范不建議 import 放在執(zhí)行內(nèi)容中:a.py :import b
para_in = 123para_out = b.xxx(para_in)b.py : def xxx(para):
執(zhí)行方法(例: para += 1) return paraexec()下面是用 exec() 實(shí)現(xiàn)「目的」描述的方法,但似乎不太“干凈”,Pycharm 會警告在調(diào)用py文件的方法前,事先聲明和py文件中同樣函數(shù)名的函數(shù)(執(zhí)行方法可以隨意寫,因?yàn)闀籶y中同名函數(shù)覆蓋):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):
執(zhí)行方法(例: para += 1) return para問題上面的方法雖然能實(shí)現(xiàn)「目的」,但似乎不夠理想。所以問題是,是否有更好的辦法實(shí)現(xiàn)「目的」?
1 回答

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
謝邀,不知是否是這樣
a.py
import importlib b = importlib.import_module('b') para_in = 123para_out = b.xxx(para_in)
添加回答
舉報(bào)
0/150
提交
取消