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')
secondfile.py
Language = 'en-US'
我可以通过以下代码添加一些变量,但是如何编辑?
with open("secondfile.py","a") as f:
f.write("Language = 'en-US'")
任何想法如何做到这一点?
答案 0 :(得分:5)
您可以在第二个文件中将Language
嵌入到具有更改方法的第二个文件中。
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()
然后导入“语言”,并使用更改方法进行更改。
from module2 import language
print(language)
language.change("test")
print(language)
答案 1 :(得分:1)
可以在另一个文件中编辑变量:
import X.secondfile
X.secondfile.Language = 'en-UK'
但是,我有两个建议:
不要使用import *
- 它会意外地污染命名空间
名称
如果它们不是常量,请不要使用此类全局变量。有些代码会在更改之前读取值,之后会读取一些值。没有人会期望它会改变。
所以,不要这样,在另一个文件中创建一个类。
class LanguagePreferences(object):
def __init__(self, langcode):
self.langcode = langcode
language_preferences = LanguagePreferences('en-UK')