Python 当使用全局变量作为文件名时,如何保持该全局变量的值?

Python 当使用全局变量作为文件名时,如何保持该全局变量的值?,python,global-variables,variable-assignment,Python,Global Variables,Variable Assignment,我想了解如何将全局变量分配给不同函数中的值,以便在用于附加文件时保留该值。另外,这是我的代码的简化版本,没有办法让它们在同一个函数中 def data(): with open (username+'.txt','a') as f: f.write("\n") def login (): username=input("What is your username. ") global username login() data() 结果是用户名

我想了解如何将全局变量分配给不同函数中的值,以便在用于附加文件时保留该值。另外,这是我的代码的简化版本,没有办法让它们在同一个函数中

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")

因此,我不知道如何保留该值。

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

这是给你的工作样本

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() 

即使是代码的简化版本也应该是可运行的。请将您的程序缩减为尽可能短的完整程序,以演示您的错误。您的代码有多个语法错误。即使这些都已修复,您的代码也不会运行,因为没有人调用
data()
。当这个问题得到解决时,您的代码将被删除。请张贴并复制粘贴(切勿重新键入)该程序到您的问题中。有关更多信息,请参阅。当您按问题中当前显示的方式运行代码时,会收到什么错误消息?请将整个错误消息文本复制粘贴到您的问题中,包括任何回溯。感谢您的帮助,我刚刚意识到我在代码中缩进了一些影响它的内容。