1

所以基本上,假设你定义了一个函数,然后在函数之后的 () 括号中写一些东西。如果我写函数(同性恋),它最终会成为“未定义错误名称”Python2.73

def lenRecur(aStr):
    '''
    aStr: a string

    returns: int, the length of aStr
    '''
    print type(aStr)
    return

def lenRecur2(aStr):
    '''
    aStr: a string

    returns: int, the length of aStr
    '''
    s = str(aStr)
    print type(s)
    return

因此,当我输入 lenRecur(gay) 或 lenRecur2(gay) 时,无论我做什么都会出错。那么有没有办法避免呢?不使用“”引号。

4

2 回答 2

6

否 - 除非您的输入已经是一个包含字符串(或另一个对象)的变量。

但是,您可以使用一个try-except块(但如果出现错误,它实际上不会做任何事情)。

try:
    lenRecur(foo)
    lenRecur2(foo)
except NameError:
    pass
于 2013-01-16T22:52:22.290 回答
4

该错误甚至在函数被调用之前发生。Python 尝试在调用函数之前评估参数。因此,Python 遇到了裸名gay并想知道,“这到底是什么?” 当它无法在本地、封闭、全局或内置范围中找到它的值时,它会引发 NameError。

没有办法解决这个问题。你必须清楚地说明你的意思。如果gay是字符串,则必须使用引号。

于 2013-01-16T22:59:53.333 回答