所以基本上,假设你定义了一个函数,然后在函数之后用()括号写一些东西。如果我写函数(同性恋),它最终会被'错误名称未定义'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(同性恋)或lenRecur2(同性恋)时,无论我做什么,它都会以错误结束。有没有办法避免它?不使用“”引号。
答案 0 :(得分:6)
否 - 除非您的输入已经是包含字符串(或其他对象)的变量。
但是,您可以使用try-except
块(但如果出现错误,它实际上不会执行任何操作)。
try:
lenRecur(foo)
lenRecur2(foo)
except NameError:
pass
答案 1 :(得分:4)
在调用函数之前发生错误。 Python在调用函数之前尝试评估参数。所以,Python遇到了简单的名字gay
并想知道,“那到底是什么?”
当它无法在本地,封闭,全局或内置作用域中找到它的值时,会引发NameError。
没有办法解决这个问题。你必须明确说明你的意思。如果gay
是字符串,则必须使用引号。