0

オブジェクトのリストがあります。ユーザーが入力した文字列があります。文字列がオブジェクトのリストにあるかどうかを確認する必要があります。

例えば:

string = "book"
object_list = [book, paper, pencil]
if eval(string) in object_list:
  #do this, etc

これは、文字列がリストにある限り機能します。文字列が次のようなものである場合: string = 'ruler'

次に、if eval(string)...ステートメントはエラーを返します。 NameError: 'ruler' is undefined.

4

2 に答える 2

2

eval を使用しないでください - うーん、dict マッピングを作成します。

dispatch = {'book': book, ...}

次に、それを使用してトレースバックを発生させます-はるかに制御されます....

または最悪の場合globals()

if globals()[string] in object_list:
    # do something...
于 2013-03-28T02:50:06.090 に答える
1

文字列がリストにあるかどうかを確認する必要がある場合は、使用しないでください。

if string in object_list:
    #code
于 2013-03-28T02:46:51.787 に答える