为什么在函数外返回不同的值

2024-06-26 03:59:31 发布

您现在位置:Python中文网/ 问答频道 /正文

当我在函数中打印变量时,它会打印出我想要的内容。但是,当我在函数外部打印它时,它会打印文件位置,而不是文件中的实际值

def go():
    username = os.getlogin()
    file2 = ('C:/Users/'+username+'/enteryourmessagehere.txt')
    if os.path.exists(file2):
        try:
            os.rename(file2,file2+"_")
            file = open('C:/Users/'+username+'/enteryormessagehere.txt', 'r').read()
            os.remove('C:/Users/'+username+'/enteryormessagehere.txt')
            main4()
            return file
        except OSError as e:

            file2 = open('C:/Users/'+username+'/enteryourmessagehere.txt_', 'r').read()
            os.remove('C:/Users/'+username+'/enteryourmessagehere.txt_')
            print (file2)
            main4()


    return file2

def main4():
    file2 = go()
    print (file2)

函数go内部的输出是文件中的任何内容,而函数main4的输出是C:/Users/'+username+'/enteryormageshere.txt


Tags: 文件函数txtgo内容osdefusername
1条回答
网友
1楼 · 发布于 2024-06-26 03:59:31
def go():
    username = os.getlogin()
    file2 = ('C:/Users/'+username+'/enteryourmessagehere.txt')
    # …
    return file2

def main4():
    file2 = go()
    print (file2)

这是代码的相关部分file2是文件名,因此当您返回file2时,您将返回文件名并打印该文件名

file2确实会发生变化,但只有在存在OSError时才会发生变化。使用变量名来告诉你什么是真正的好主意。例如,使用fileNamefilePath作为文件名或路径,对于文件内容,使用一些明确表示它是某个内容的内容,例如fileContentuserMessage(如果在您的上下文中有意义的话)

最后,我不知道你到底在做什么。您正在交替地递归调用gomain,这似乎有点奇怪和不稳定。你应该考虑改变这种状况

相关问题 更多 >