当我运行python文本游戏时,我得到一个属性错误,我不知道如何解决
对于我的第一个python项目,我决定进行一次文本游戏冒险,但我偶然发现了一个错误,我真的不知道如何修复错误: 错误:当我运行python文本游戏时,我得到一个属性错误,我不知道如何解决,python,Python,对于我的第一个python项目,我决定进行一次文本游戏冒险,但我偶然发现了一个错误,我真的不知道如何修复错误: 错误: Traceback (most recent call last): File "C:\Users\Sekou\Documents\school simulator game\aloysiusgame.py", line 248, in <module> myPlayer.gender = player_gender AttributeError: 'str' ob
Traceback (most recent call last):
File "C:\Users\Sekou\Documents\school simulator game\aloysiusgame.py", line 248, in <module>
myPlayer.gender = player_gender
AttributeError: 'str' object has no attribute 'gender'
编辑我定义播放器的部分:
import cmd
import textwrap
import sys
import os
import time
import random
screen_width = 100
##### player setup #####
class player:
def __init__(self):
self.name = ''
self.gender = ''
self.classyear4 = ''
self.sociaal = 0
self.educatie = 0
self.emoties = 0
self.location = 'c16'
self.game_over = False
myPlayer = player()
老兄,这就是我想你要做的,希望能有所帮助
myPlayer = {}
questions ={'name':None, 'age':None, 'gender':['man', 'woman']}
for question, valid_answers in questions.items():
correct = False
error_msg =""
if valid_answers == None:
answer = input(question + '\n>')
myPlayer[question] = answer
else:
while correct == False:
answer = input(error_msg+question+'\n>')
if answer.strip().lower() in valid_answers:
myPlayer[question] = answer
correct = True
else:
error_msg = ("Your answer is invalid \n")
for key, value in myPlayer.items():
print("{}:{}".format(key, value))
我们可以看到您在哪里声明
myPlayer
?您可能将字符串分配给myPlayer
,而不是Player
(或类似)对象。我添加了定义播放器的部分。我希望这能帮上忙谢谢你,起初理解它有困难,但在测试它并做了一些小改动之后,它就成功了。
myPlayer = {}
questions ={'name':None, 'age':None, 'gender':['man', 'woman']}
for question, valid_answers in questions.items():
correct = False
error_msg =""
if valid_answers == None:
answer = input(question + '\n>')
myPlayer[question] = answer
else:
while correct == False:
answer = input(error_msg+question+'\n>')
if answer.strip().lower() in valid_answers:
myPlayer[question] = answer
correct = True
else:
error_msg = ("Your answer is invalid \n")
for key, value in myPlayer.items():
print("{}:{}".format(key, value))