我在两个不同的模块中有两个课程:
animal.py
monkey.py
animal.py:
import json
class Animal(object):
pass
猴:
import animal
class Monkey(animal.Animal):
def __init__(self):
super(Monkey, self).__init__()
# Do some json stuff...
当我尝试实例化Monkey
时,我得到了一个
NameError: global name 'json' is not defined
但是我在超类的定义模块中导入json
,为什么不加载它?
答案 0 :(得分:11)
已加载,但其名称在monkey.py
范围内不可用。
您可以输入animal.json
来获取它(但为什么会这样),或者只需输入
import json
在monkey.py
中也是如此。 Python将确保模块未加载两次。
答案 1 :(得分:2)
好吧,python导入不能用作C #include预处理器指令。它们仅将模块导入导入模块的命名空间,而不导入全局命名空间。所以,你将不得不在你打算使用它的每一个模块中导入json。