一段源码
import importlib
packages = ['pathlib', 'sys']
modules = ['Path', 'path']
for idx, package in enumerate(packages):
tmp = importlib.import_module(package)
importlib.reload(tmp)
execline = modules[idx] + ' = getattr(tmp, "' + modules[idx] + '")'
print(execline)
exec(execline)
# importlib.import_module('pathlib'); importlib.reload(pathlib); Path = getattr(pathlib, 'Path')
# import pathlib; importlib.reload(pathlib); from pathlib import Path
请问各路高人,有什么办法能替代上面的 exec?
稍微解释一下。exec 那句的功能是要动态载入数个我自己的函数…… 不过我用了系统的包做例子。非动态下 2 行 # 行其中的任一行都可以实现 exec行的功能。
之所以不想用 exec 一是因为 pylint 出警告信息,二是因为 execline 这种写法太丑也容易出错。