【发布时间】:2021-01-25 20:12:14
【问题描述】:
我正在尝试执行一些基本的 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)
【问题讨论】:
-
ManCity.getAge()的参数必须是ManCity实例。chosenName是一个字符串。 -
如果您尝试键入变量名,那将不起作用。
input()不会评估您输入的变量,它只是一个文字字符串。 -
ManCity.getAge(chosenName)是错误的。你为什么将chosenName传递给.getAge? -
如果您希望能够按名称查找
ManCity,请创建一个从名称映射到实例的字典。或者你可以将它们全部放在一个列表中,并通过任何属性进行搜索。
标签: python python-3.x oop