NameError:全局变量未定义,尽管在同一函数中且未被导入?

0 投票
1 回答
553 浏览
提问于 2025-04-17 15:58

这是我在这个论坛上的第一个问题!我正在尝试为另一个文件中的一个类写测试文件(顺便说一下,都是用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")])

撰写回答