首页 > 解决方案 > 函数内部的 Python 变量无法调用

问题描述

我正在用 python 制作一个 rpg 类型的东西,我制作了一些函数,但我需要调用在单独的函数中声明和更改的变量。我如何能够在函数中调用变量。我的代码:

import time
def title():
  print("Hello Welcome To Elvoria")
  time.sleep(1)
  print("Choose Your Gender, Name, And Race")
  time.sleep(1)
def gnd():
  Gender = input("""Male, Female, Or NonBinary?
""")

  if Gender == ("Male"):
    genderin = 'Male'
  elif Gender == ("Female"):
    genderin = 'Male'
  elif Gender == ("NonBinary"):
    genderin = 'Male'
  else:
    gnd()
def nm():
  namein = input("""What Is Your Character's Name?
""")
  print("Welcome To Elvoria "+namein+"")
def rac():
  print("""The Race Options Are:
Elf-Good With Archery And Light Armor
Kelner-Good With Two Handed Weapons And Heavy Armor
Human-Good With Bows And Stealth
Mageine-Good With Magic And Speed""")
  time.sleep(1)
  racin = input("""Now Choose A Race
""")
  if racin == ("Elf"):
    print ("You Are Now A " + genderin + racin +" Named" + namein + "")
  elif racin == ("Kelner"):
    print ("You Are Now A " + genderin + racin +" Named" + namein + "")
  elif racin == ("Human"):
    print ("You Are Now A " + genderin + racin +" Named" + namein + "")
  elif racin == ("Magein"):
    print ("You Are Now A " + genderin + racin +" Named" + namein + "")
  else:
    print ("You Are Now A " + genderin + racin +" Named" + namein + "")
title()
time.sleep(1)
gnd()
time.sleep(1)
nm()
time.sleep(1)
rac()

和错误代码:

   print ("You Are Now A " + genderin + racin +" Named" + namein + "")
NameError: name 'genderin' is not defined

标签: pythonfunctionvariables

解决方案


您有 2 个选项:

  • 您可以创建一个全局变量,并在函数中使用 global 语句定义它,这样您就可以在之后使用全局值

  • 您可以将值传递给函数并使用它(更好的方法,应避免使用全局变量)


推荐阅读