如何将输入存储为全局变量?

时间:2018-05-20 09:59:55

标签: python python-3.x global-variables

对于python而言,我是一个绝对的新手,我正在通过自己的文字冒险游戏来学习。

我有一些代码可以让用户输入他们的名字:

# player name
def playerName():
    name = ""
    name = input("Before we begin, what is your name, warrior? ") 
    print("\n")
    print("Welcome {}, now be on your way!".format(name))
    print("\n")

这在游戏中应该有效。玩家输入他们的名字并继续游戏。但是,我希望以后能够在不同的函数中打印播放器的输入,并继续运行名称未定义的错误消息。所以我试图将此输入存储为全局变量。我认为这是正确的方法,是吗?

我已经阅读了关于将函数存储为全局变量的信息,但这些函数始终已由程序员指定,即name = sarah

如何存储输入以便稍后打印?我以为print("string" + name)以后就足够了。但我显然误解了一些事情。

2 个答案:

答案 0 :(得分:2)

在文件顶部,创建变量:

name = None

# other functions....

def function_you_want_to_use_name_in():
    global name
    print(name)

def main():
    global name
    name = input("Before we begin, what is your name, warrior? ") 
    print("\n")
    print("Welcome {}, now be on your way!\n".format(name))

如果您只打印该值,则不必在global name中加入function_you_want_to_use_name_in;函数中没有名为name的其他变量,因此python使用全局值。我通常会把它包括在内,因为它更清楚了解它是什么。

答案 1 :(得分:2)

您可以将变量声明为全局变量,并随时随地访问它。例如:

# player name

name = ""

def playerName():
    global name
    name = input("Before we begin, what is your name, warrior? ")
    print("\n")
    print("Welcome {}, now be on your way!".format(name))
    print("\n")

def printname():
    print(name)

playerName()
printname()

输出:

Before we begin, what is your name, warrior? hari


Welcome hari, now be on your way!


hari 

说明:

首先在文件中声明变量name,然后使用global关键字对其进行访问。因此,存储在该变量中的值由代码

中提到的多个函数访问