Skip to main content
 首页 » 编程设计

python之根据 Python 3x 中的用户输入打印对象属性

2025年05月04日10softidea

首先,我想说我是 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”必须由用户输入。

进行了一些搜索,但到目前为止没有成功。

请您参考如下方法:

您可以使用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!