1

したがって、基本的に、関数を定義し、関数の後に()括弧で何かを記述したとします。function(gay)と書くと、「エラー名が定義されていません」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 に答える