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

时间:2016-09-10 11:51:04

标签: 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')

secondfile.py

Language = 'en-US'

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

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

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

2 个答案:

答案 0 :(得分:5)

您可以在第二个文件中将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()

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

第1单元

from module2 import language

print(language)
language.change("test")
print(language)

答案 1 :(得分:1)

可以在另一个文件中编辑变量:

import X.secondfile
X.secondfile.Language = 'en-UK'

但是,我有两个建议:

  1. 不要使用import * - 它会意外地污染命名空间 名称

  2. 如果它们不是常量,请不要使用此类全局变量。有些代码会在更改之前读取值,之后会读取一些值。没有人会期望它会改变。

  3. 所以,不要这样,在另一个文件中创建一个类。

    class LanguagePreferences(object):
        def __init__(self, langcode):
            self.langcode = langcode
    
    language_preferences = LanguagePreferences('en-UK')