【问题标题】:How do you keep the value of a global variable when using that global variable as the name of a file?当使用全局变量作为文件名时,如何保持全局变量的值?
【发布时间】:2018-05-08 17:07:32
【问题描述】:

我正在寻找如何将全局变量分配给不同函数中的值,以在用于附加文件时保留该值。附言这是我的代码的简化版本,它们无法使用相同的功能。

def data():
    with open (username+'.txt','a') as f:
           f.write("\n")
def login ():
     username=input("What is your username. ")
     global username
login()
data()

出现了用户名未定义,尽管它说我不允许这样做:

 with open (global username +'.txt','a') as f:
             f.write("\n")

所以我不知道如何保持价值。

【问题讨论】:

  • 即使是简化版本的代码也应该可以运行。请将您的程序缩减为能够证明您的错误的最短的完整程序。您的代码有多个语法错误。即使这些已修复,您的代码也永远不会运行,因为没有人调用data()。当那个问题得到解决时,你的代码runs perfectly with the intended result。请edit您的帖子并将该程序复制粘贴(永远不要重新输入)到您的问题中。请参阅minimal reproducible example 了解更多信息。
  • 当您运行问题中当前显示的代码时,您会收到什么错误消息?请将整个错误消息文本复制粘贴到您的问题中,包括任何回溯。
  • 感谢您的帮助,刚刚意识到我在代码中缩进了一些影响它的内容。

标签: python global-variables variable-assignment


【解决方案1】:

您应该首先在全局范围内声明变量,并且应该在使用值之前而不是之后使用“全局变量”。

这是给您的工作示例。

username = None

def data():
    global username
    username  = 'teste1'



def login():
    global username
    print('username before login : ', username)
    username = 'changed'
    print('username after login : ', username)


data()
login() 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多