一段源码
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 这种写法太丑也容易出错。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.