Функция поиска по словарям - PullRequest
1 голос
/ 08 апреля 2020

Я пытаюсь написать простую функцию, которая при задании параметров имени словаря и ключа вернет правильное значение. В основном это будет просто краткий справочник по установке сальника правильного размера на кабеле правильного размера с правильным количеством жил.

Вот что у меня есть:

cable120 = { 2 : '40mm', 3 : '40mm', 4 : '50mm' }

cable150 = { 2 : '40mm', 3 : '50s', 4 : '50mm' }

cable185 = { 2 : '50s', 3 : '50mm', 4 : '63s' }

cable240 = { 2 : '50mm', 3 : '63s', 4 : '63mm' }

def glandsize(csa,cores):

    try :
        print(csa[cores])

    except : 
        print('Command not recognised. Please try Again.')
        print (' Use As Follows glandsize(cable??, cores)\n For Example If Cable Is 16mm 3 core,\n glandsize(cable16,3')

#glandsize(cable185,2)

Теперь я сохраняю этот файл как GlandSize.py и помещаю его в путь, чтобы я мог импортировать его из командной консоли для использования.

Вот что происходит, когда я пытаюсь использовать его в оболочке:

Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> import GlandSize
>>> GlandSize.glandsize(cable185, 3)
Traceback (most recent call last):
    File "<pyshell#1>", line 1, in <module>
    GlandSize.glandsize(cable185, 3)
NameError: name 'cable185' is not defined
>>> 

Я не понимаю, почему? Я знаю, что если при импорте я вызываю функцию glandsize (cable185,2) в GlandSize.py, она выдает правильный результат.

Почему я не могу получить доступ к правильному словарю в модуле из оболочки?

Я знаю, что это, вероятно, действительно основная c ошибка, но, похоже, я не могу обойти ее. любая помощь будет принята с благодарностью.

1 Ответ

4 голосов
/ 08 апреля 2020

Каждый раз, когда вы открываете новый терминал, все переменные будут пустыми. Либо ссылка на словарь внутри файла:

>>> import GlandSize
>>> GlandSize.glandsize(GlandSize.cable185, 3)
50mm

Или создайте новый dict:

>>> import GlandSize
>>> cable185 = { 2 : '50s', 3 : '50mm', 4 : '63s' }
>>> GlandSize.glandsize(cable185, 3)
50mm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...