如何在另一个python文件中修改变量?

Moh*_*ian 5 python variables module

Windows 10-Python 3.5.2

嗨,我有以下两个python文件,并且我想使用第一个python文件中的代码来编辑第二个文件的变量。

firstfile.py

from X.secondfile import *

def edit():
    #editing second file's variables by user input
if Language == 'en-US':
    print('language is English-us')
elif Language == 'en-UK':
    print('language is English-uk')
Run Code Online (Sandbox Code Playgroud)

secondfile.py

Language = 'en-US'
Run Code Online (Sandbox Code Playgroud)

我可以通过以下代码向其中添加一些变量,但是如何编辑一个?

with open("secondfile.py","a") as f:
    f.write("Language = 'en-US'")
Run Code Online (Sandbox Code Playgroud)

任何想法如何做到这一点?

Jak*_*keD 6

您可以将嵌入到Language第二个文件的类中,该类具有更改它的方法。

模块2

class Language:
    def __init__(self):
        self.language = 'en-US'

    def __str__(self):
        return self.language

    def change(self, lang):
        assert isinstance(lang, str)
        self.language = lang

language = Language()
Run Code Online (Sandbox Code Playgroud)

然后导入“语言”,并使用change方法对其进行更改。

模块1

from module2 import language

print(language)
language.change("test")
print(language)
Run Code Online (Sandbox Code Playgroud)

  • 是的,确实如此,但当然它实际上并没有更改文件(您无法退出程序并重新打开它,因为它不写入文件)。但是,如果您添加第三个模块,在模块 1 中更改后打印出“语言”,它会显示“测试”。我想这就是你想要的。如果您希望它在“会话”之间保存,您需要将其写入某种文件(腌制、纯文本等)。 (2认同)