當我在“printPeople”引數中手動輸入“alex”時,代碼列印得很好。
class people:
name = ''
age = ''
alex = people()
alex.name = 'Alex'
alex.age = '25'
clarance = people()
clarance.name = 'Clarance'
clarance.age = '24'
def printPeople(person):
print('-' * 20)
print('Name:', person.name)
print('Age:', person.age)
print('-' * 20)
printPeople(alex)
但是,如果我嘗試使用輸入函式手動選擇名稱:
class people:
name = ''
age = ''
alex = people()
alex.name = 'Alex'
alex.age = '25'
clarance = people()
clarance.name = 'Clarance'
clarance.age = '24'
def printPeople(person):
print('-' * 20)
print('Name:', person.name)
print('Age:', person.age)
print('-' * 20)
userInput = input('Enter name: ')
printPeople(userInput)
我收到一個錯誤:
AttributeError:“str”物件沒有屬性“name”
uj5u.com熱心網友回復:
alex是一個變數
printPeople(alex)
不是回傳str值input
# Wrong
printPeople("alex")
如果您希望輸入選擇程式中的資料,請使用dict您可以與用戶輸入一起索引的。
people_data = {"alex": alex}
...
printPeople(people_data[userInput])
uj5u.com熱心網友回復:
您的printPeople函式需要一個people值,或者至少需要一些帶有name和age屬性的值。當你打電話時printPeople(input()),你將一個字串傳遞給printPeople. 該字串沒有必需的屬性。
uj5u.com熱心網友回復:
您正在傳遞一個字串物件,它沒有屬性名稱。你必須知道在 python 中一切都是物件。
在這兩行中,您嘗試訪問實體的屬性名稱和年齡,因此出現錯誤。print('姓名:', person.name) print('年齡:', person.age)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/444659.html
上一篇:如何將WPF應用程式添加到Windows10中的“選擇哪些應用程式可以訪問您的精確位置”串列?
下一篇:在一組資料框中查找和重命名列
