我正在制作冒险游戏,我也检查了玩家是哪个级别,但游戏不会重新分配角色,所以玩家在被设置为人之后仍然没有类型。
character = None
def start():
characterchosen = False
printslow("Welcome adventurer. Chose wisely.")
sleep(2)
charactername = input("What is your name? ")
print("Characters:")
print("1. Person")
while characterchosen == False:
character = input("Please chose a character: ")
characterchosen = True
if character == "1":
character = person(charactername)
else:
characterchosen = False
print("Invalid Response. Please try again.")
print("Great! Now that you have chosen your class, your mission may begin.")
gameone()
def gameone():
if type(character) == "<class 'person'>":
print("game here")
start()
当我使用print(类型(字符))时,我得到<class 'NoneType'>
的更新:
我尝试将检查设置为NoneType,但即使正在调用函数,我仍然没有得到任何结果。
答案 0 :(得分:0)
当您在character
函数中引用start
变量时,它将分配给本地范围(函数范围)中的变量。要让Python知道您在全局范围中定义的character
变量,您必须明确说明:
def start():
global character
characterchosen = False
printslow("Welcome adventurer. Chose wisely.")
...
您还将type
的结果与该类型的字符串表示进行比较。你想要的是直接将它与类型进行比较:
if type(character) == person:
print("game here")
或者更好的是,使用isinstance
内置函数:
if isinstance(character, person):
print("game here")