我的理解错了吗?
是的,因为该行
from file_a importA仅将类
A导入的名称空间
file_b。的名称空间
file_a不予处理。如果不是这样,则两种语法都没有意义:
import modulenamefrom modulename import something
好像您的想法是正确的,那么在第二种形式之后,您将始终可以使用
modulename.someotherthing。
如果是,那么是否有办法在文件之间具有通用的导入和全局变量?
是的,使用星号
*运算符:
from modulename import *
但这带来了名称空间污染的问题,例如
from file_a import *还将导入在中
file_b完成的所有导入
file_a。您最终 将
失去对进口的控制,这会在某些时候刺伤您……请相信我!
当出于某些原因
from module import*需要时,解决方法是在变量中定义名称空间污染,
module该变量
__all__将应使用star运算符导入的内容列入白名单。
HTH!



