如何从函数将变量发送回主程序?

时间:2013-08-30 14:40:47

标签: python python-3.x

我的代码存在问题

我希望我的代码将用户命令创建的文件名返回给我的主程序,但我不知道如何,我已经尝试了返回文件名但是没有用,这里是代码:

#File Creator 
def Create(filename):
    UserFile = open(str(filename), "wt")
    file = (str(filename))
    return file

#Main program
Create(input("filename: "))
print(file)

我正在使用python 3.3,如何将文件设置为可以在代码中的任何位置使用的变量?

我在考虑添加file = Create(input("filename: ")),但我不确定是否还有其他方式

2 个答案:

答案 0 :(得分:3)

如何返回文件不起作用?虽然你在代码中有几个错误。试试这个,应该可以解决这个问题:

# File Creator 
def create(filename):
    userFile = open(filename, "rw")
    return userFile # this is a file object

# Main program
theFile = create(input("filename: "))
print(str(theFile)) # string representation of the file object

无论如何,避免使用全局变量如果没有真正需要它们 - 全局变量是非常糟糕的编程实践。在这个简单的情况下,在一个结构良好的程序中将值作为参数和/或返回值传递就足够了。

答案 1 :(得分:0)

您可以使用global

def Create(filename):
    global file
    UserFile = open(str(filename), "wt")
    file = (str(filename))
    #return file  -- I commented this since there is no real reason to return now with a global

file现在将在全球范围内。

就个人而言,我认为file = Create(input("filename: "))的方法是最好的。像这样使用全局变量是许多人不赞同的,而且经常可以避免。