您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python“导入”范围

Python“导入”范围

但是bar会同时导入foo和boo。foo是否应该自动可用于boo?

不,它不应该:import与其他任何绑定名称的方式一样,将名称绑定在单个特定的范围内,而不是“在可能需要的所有范围内”。

有办法吗?如前所述,boo.py是为我自动生成的,我想避免在boo.py中添加import foo

一个非常糟糕的hack-我不想忍受它(我宁愿投入我的精力来使这个完全损坏的代码生成器可以boo.py修复- 如果它有一个巨大的错误,例如缺少关键的必要导入,它还可以存储什么其他恐怖内容?!),但是,这不是 我的 葬礼… ;-)

bar.py开始…:

import foo
import boo
import __builtin__
__builtin__.foo = foo

你所做的标识这样foo一个“假的,人造的内置名”(唯一一种的名称 从每一个范围,除非在接近范围的名字的其他介入绑定阴影)指的是模块foo

推荐使用此过程,只是针对构建的代码生成器中的可怕,明显漏洞的临时解决方法boo.py修复该错误 以便您可以尽快停用此黑客!

python 2022/1/1 18:42:54 有472人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶