4

我在两个不同的模块中有两个类:

  • 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...

当我尝试实例化 aMonkey时,我得到一个

NameError: global name 'json' is not defined

但是我是json在超类的定义模块中导入的,为什么不加载呢?

4

2 回答 2

11

它已加载,但其名称在monkey.py.

你可以输入animal.json来解决它(但你为什么要这样做),或者只是输入

import json

monkey.py以及。Python 将确保模块不会被加载两次。

于 2012-05-06T16:02:36.043 回答
2

好吧,python 导入不能用作 C #include 预处理器指令。他们只将模块导入到导入模块的命名空间,而不是全局命名空间。因此,您将不得不在您打算使用它的每个模块中导入 json。

于 2012-05-06T16:05:39.197 回答