2

まず第一に、私は Python の初心者 (またはプログラミングの初心者) であり、ユーザー入力に基づいてオブジェクトから属性を出力する方法を理解しようとしています。

これは私がこれまでに持っているコードです:

class Customer:
    "De klasse customer"

    def __init__(self, naam, adres, woonplaats, email):   
        self.naam = naam
        self.adres = adres
        self.woonplaats = woonplaats
        self.email = email

input1 = input ("Enter the object name")
print(input1.naam) ## ** << This is what i like to know**

a = Customer('Name1', 'address', 'Utrecht', 'Email1@hotmail.com')
b = Customer('Name2', 'Bonestaak', 'Maarssen', 'Bijjaapishetaltijdraakhotmail.com')

だから私は基本的にこれを望んでいます:print(a.naam)動作するようにしますが、「a」はユーザーが入力する必要があります。

いくつかの検索を行いましたが、これまでのところ成功していません。

4

1 に答える 1

1

locals次の機能を使用できます。

>>> a = {1:'abc'}
>>> obj = raw_input('Obj?> ')
Obj?> a
>>> print locals()[obj][1]
abc
>>> 

ただし、これは非常に安全でない構成です(ローカルには他のものがあります!)


よりクリーンな方法は次のとおりです。

customers = {
    'a' : Customer('Name1', 'address', 'Utrecht', 'Email1@hotmail.com')
    'b' : Customer('Name2', 'Bonestaak', 'Maarssen', 'Bijjaapishetaltijdraakhotmail.com')
}

customer = raw_input('Customer? > ')
print customers[customer].naam

KeyErrorただし、適切に処理する必要があります。

于 2012-11-14T23:19:25.847 に答える