10

私はプログラミングを学んでいて、Python を私の最初の言語として学んでいます。演習として、アドレス帳プログラムを作成しようとしています。新しい連絡先は、コマンド プロンプトを使用してユーザーによって作成されます。新しい連絡先は、Contacts クラスのオブジェクト インスタンスです。

コード内からクラス オブジェクトをインスタンス化する方法は知っていますが、ユーザー入力に基づく変数名を使用してクラス オブジェクトを作成するにはどうすればよいでしょうか。ユーザーに名前の入力を求めるとします。その情報を取得して、新しいオブジェクトの変数名に使用するにはどうすればよいでしょうか?

ありがとう!!

4

2 に答える 2

21

コメントから、ここで何度も質問されていることについて質問していることがわかります。「動的に名前が付けられた変数を作成するにはどうすればよいですか」.

答え:しないでください。問題を解決するためのより良い方法がある可能性があります。

説明:

動的に名前が付けられた変数を作成する場合、それらが作成されると、それらを適切に処理することはできません。確かに、グローバルとローカルのスコープをチェックして、そこにあるものを確認する方法があります。しかし実際には、作成されるものを完全に制御する必要があります。

あなたがすべきことは、それらを辞書に入れることです:

people = {}
name = raw_input("What name? ") # "person"
people[name] = User(name)

print people
# {'person': <User: "person">}

print people.keys()
# ['person']

このようにして、名前空間に任意の変数を作成することはありません。これで、キーとオブジェクトのディクショナリが値として作成されました。また、ユーザーが指定した入力によって変数の命名を実行できるようにすることも、ワームのできごとです。

詳細については、ここで同じトピックを検索して、これを行うべきではない理由の多数の例を参照してください。globals() などの使用方法を示す例がどのようなものであっても、私のアドバイスに従ってください。愛し、楽しんでください..そして多分ハグしてキスしてください、あなたの辞書。

参考文献:

于 2012-07-06T00:09:37.583 に答える