NameError全局变量未定义,即使它在同一个函数中,并且未导入?

时间:2013-02-15 07:58:49

标签: python unit-testing class global-variables nameerror

这是我在这个论坛上的第一个问题! 我试图在另一个文件中编写一个类的测试文件(全部用Python btw),我得到一个NameError:全局变量 name here undefined。我将向您展示我正在做的一些示例代码。

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说NameError: global name 'object_test_setup' is not defined

我不明白,因为所有导入的工作都在该文件中,我相信我导入正确,全局NameError来自类本身的函数。为什么不这样做?非常感谢所有帮助!

非常感谢, 托马斯

1 个答案:

答案 0 :(得分:2)

这是一个类方法,所以你需要像一个方法一样调用它:

custom_object = self.object_test_setup([1, "string!", ("TUP", "LE")])