NameError:全局变量未定义,尽管在同一函数中且未被导入?
这是我在这个论坛上的第一个问题!我正在尝试为另一个文件中的一个类写测试文件(顺便说一下,都是用Python写的),但是我遇到了一个错误,提示“全局变量这里的名字未定义”。我给你展示一些我正在做的示例代码。
import unittest
from File import *
class TestFile(unittest.TestCase):
def object_test_setup(self, elements):
s = CustomClass() #from imported File, have to import items this way.
for item in elements:
a.insert(item)
return (a)
def test_contains_tuple_element(self):
'''Return True iff CustomClass contains tuple element'''
custom_object = object_test_setup([1, "string!", ("TUP", "LE")])
element = ("TUP", "LE")
self.assertTrue(custom_object.__contains__(element)) # __contains__ is defined in File
是的,那个对象初始化得很好,导入文件中的所有方法都能在这个对象上正常工作,但不知为什么,我的错误提示是NameError: global name 'object_test_setup' is not defined
我不明白为什么会这样,因为在那个文件中所有导入的东西都能正常工作。我相信我导入得没问题,而这个全局的NameError是来自类内部的一个函数。为什么这不行呢?非常感谢大家的帮助!
非常感谢,
托马斯
1 个回答
2
这是一个类的方法,所以你需要像调用类的方法那样来使用它:
custom_object = self.object_test_setup([1, "string!", ("TUP", "LE")])