从Python中的另一个文件导入变量

2024-09-30 00:35:18 发布

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

我有两个文件-abc.pymain.py。我的目标是从另一个文件导入整个词典。为了更好地解释它,用户输入一个输入(比如英语),这应该是将变量英语从abc.py导入main.py。下面是我试过的代码,它给了我一个错误

*/abc.py

English = {1:"Hello", 2:"World"}
Italian = {1:"Bonjour", 2:"Mondo"}

*/main.py

import abc
option=input("Please Enter 'English' or 'Italian': ")
selectedLanuage = abc.option

print(selectedLanuage)

Tags: 文件代码用户pyhello目标worldenglish
2条回答

我能想到的一个解决方法是将字典的访问和输入分开

option=input("Please Enter 'English' or 'Italian': ")
if option == "English":
    selectedLanguage = abc.English
elif option == "Italian":
    selectedLanguage = abc.Italian
print(selectedLanguage)

编辑:

languages = {"English": abc.English, "Italian": abc.Italian}
option = input("Please Enter 'English' or 'Italian': ")
selectedLanguage = languages[option]

首先,我强烈建议您将当前的abc文件命名为其他名称,因为abc实际上是一个standard library module。假设在languages.py中有以下内容

English = {1: "Hello", 2: "World"}
Italian = {1: "Bonjour", 2: "Mondo"}

以及main.py中的以下内容

from languages import English, Italian

languages_by_choice = {
    'English': English,
    'Italian': Italian
}

option = input('Please enter "English" or "Italian": ')
selected_language = languages_by_choice.get(option)
if not selected_language:
    raise ValueError('Invalid language selection: {}'.format(option))

print(selected_language)

您的程序将使用如下内容:

~ python3 main.py   
Please enter "English" or "Italian": English
{1: 'Hello', 2: 'World'}

~ python3 main.py
Please enter "English" or "Italian": Italian
{1: 'Bonjour', 2: 'Mondo'}

~ python3 main.py
Please enter "English" or "Italian": asdf
Traceback (most recent call last):
  File "stackoverflow.py", line 11, in <module>
    raise ValueError('Invalid language selection: {}'.format(option))
ValueError: Invalid language selection: asdf

相关问题 更多 >

    热门问题