我正在尝试执行一些基本的OOP命令,当我直接输入属性名时,这些代码可以工作,但当我尝试从用户输入中获取属性名时,这些代码就不能工作
print('Hello, welcome')
class ManCity:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
def getName(self):
print(self.name)
def getAge(self):
print(self.age)
def getPosition(self):
print(self.position)
aguero = ManCity('Sergio Aguero', 32, 'Striker')
sterling = ManCity('Raheem Sterling', 27, 'Winger')
jesus = ManCity('Gabriel Jesus', 24,'Striker')
dias = ManCity('Ruben Dias', 29, 'Centre Back')
stones = ManCity('John Stones', 26, 'Centre Back')
ederson = ManCity('Ederson', 29,'GoalKeeper')
chosenName = input(str('Choose Player'))
ManCity.getAge(chosenName)
您需要检查每个实例的
chosenName
,如正如@Barmar所建议的,您可以创建一个从名称映射到实例的字典。这将使查找相应实例的速度非常快,并检查其名称是否在字典中
这里有一个这样做的例子。字典名为
players
。注意,它将玩家姓氏的小写版本映射到每个Player
实例(并在处理之前将用户的输入转换为小写)使用示例:
相关问题 更多 >
编程相关推荐