Импорт переменной из другого файла в Python - PullRequest
0 голосов
/ 13 июля 2020

У меня есть два файла - ab c .py и main.py . Моя цель - импортировать весь словарь из другого файла. Чтобы лучше объяснить это, пользователь вводит ввод (скажем, Engli sh), и это должна быть переменная импорта Engli sh из ab c .py в main.py . Ниже приведен код, который я пробовал, он выдает ошибку.

* / ab c .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)

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Во-первых, я настоятельно рекомендую вам дать вашему текущему файлу abc другое имя, поскольку abc на самом деле является модулем стандартной библиотеки . Предполагая, что у вас есть следующее в 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
0 голосов
/ 13 июля 2020

Одно временное решение, которое я могу придумать, - это разделение доступа к словарю и ввода.

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

EDIT:

languages = {"English": abc.English, "Italian": abc.Italian}
option = input("Please Enter 'English' or 'Italian': ")
selectedLanguage = languages[option]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...