簡體   English   中英

如何修改另一個python文件中的變量?

[英]How to modify variables in another python file?

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'")

任何想法如何做到這一點?

您可以將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()

然后導入“語言”,並使用change方法更改它。

第1單元

from module2 import language

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

這可以在另一個文件中編輯變量:

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

但是,我有兩個建議:

  1. 不要使用import * - 它會使用意外名稱污染名稱空間

  2. 如果它們不是常量,請不要使用這樣的全局變量。 有些代碼會在更改之前讀取值,之后會讀取一些值。 沒有人會期望它會改變。

所以,而不是這個,在另一個文件中創建一個類。

class LanguagePreferences(object):
    def __init__(self, langcode):
        self.langcode = langcode

language_preferences = LanguagePreferences('en-UK')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM