我在两个不同的模块中有两个类:
animal.py
monkey.py
动物.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
,那么为什么不加载它呢?
好吧,python导入不起C#include pre processor指令的作用。它们只将模块导入导入模块的命名空间,而不导入全局命名空间。因此,您必须在每个要使用的模块中导入json。
已加载,但其名称在
monkey.py
范围内不可用。您可以键入
animal.json
来获取它(但为什么要这样做),或者只键入也在
monkey.py
中。Python将确保模块不会被加载两次。相关问题 更多 >
编程相关推荐