testfunctions中的Python名称错误

testfunctions中的Python名称错误,python,nameerror,Python,Nameerror,这个问题我遇到过好几次,不知道如何处理。我的许多测试函数(例如test\u add)返回一个namererror,尽管测试函数存在。例如: def test_add(): '''Testfunction for add''' assert add(1)==[1] assert add(2)==[1, 2] assert add(3)==[1, 2, 3] def add(n): pass 有什么问题吗 好的,下面是实际代码: def test_add(): '''

这个问题我遇到过好几次,不知道如何处理。我的许多测试函数(例如
test\u add
)返回一个
namererror
,尽管测试函数存在。例如:

def test_add():
   '''Testfunction for add'''
   assert add(1)==[1]
   assert add(2)==[1, 2]
   assert add(3)==[1, 2, 3]
def add(n):
   pass
有什么问题吗

好的,下面是实际代码:

def test_add():
'''Testfunction for add'''
assert add(1)==li+[1]
assert add(2)==li+[1, 2]
assert add(3)==li+[1, 2, 3]


def add(n):
'''Adds a new element to the list of scores.
    n is an integer number between 1 and 100.
    Returns the new list'''
global li
li.append(n)
return li

这是一个更长的项目的一部分,所以我不能全部发布。当我运行testfunction时,它会给我一个nameerror,表示没有定义“add”。

您发布的代码不会抛出
nameerror
。无论您在实际代码中做什么,都是不同的。您可能应该发布实际的、可运行的代码(您自己已经发布并看到了错误)。

该代码将给出断言错误,而不是名称错误。您能提供一个可复制的示例吗?是的,没有名称,所以没有名称错误。除了函数
add()
——您确定它不在单独的文件或范围内,因此无法从内部访问
test\u add()
?正如@Daniel Roseman指出的,您的代码(包括实际代码)生成
AssertionError
s not
NameErrors
——这是正确的,因为列表
add()
returns中已经添加了数字,因此与再次添加数字不同。