Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2014 18:17:14

fieryvova
Зарегистрирован: 2014-10-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

Привет! Я новичок, так что не судите строго за название.

Есть full_info_dictionary.py, который представляет собой набор питоновских словарей вида:

d = {
"key" : "value"
}

Я импортирую его, смотрю его тип:
import full_info_dictionary
type(full_info_dictionary)
#<class 'module'>

После импорта, я хочу пользоваться словарями, которые находятся в full_info_dictionary.py. Это можно сделать так:
full_info_dictionary.d["key"]
Но я хочу передавать ему не конкретный словарь (здесь это d), а имя словаря через аргумент командной строки. То есть:
full_info_dictionary.sys.args[1]["key"]
На это питон ругается следующим:
AttributeError: 'module' object has no attribute 'sys'
Естественно, весть dir(full_info_dictionary) показывает, что такого атрибута действительно нет.

Подскажите, пожалуйста, как это реализовать правильно? Или есть простой альтернативный способ?

Офлайн

#2 Окт. 21, 2014 19:01:42

alexsis
Зарегистрирован: 2013-07-26
Сообщения: 148
Репутация: +  9  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

Лучше пользоваться классами. Не совсем понимаю вот это:

fieryvova
передавать ему не конкретный словарь (здесь это d), а имя словаря через аргумент командной строки. То есть:
full_info_dictionary.sys.args

Что вы хотите получить в итоге?

Офлайн

#3 Окт. 21, 2014 19:08:35

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

getattr(full_info_dictionary, sys.args[1])["key"]



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#4 Окт. 21, 2014 19:21:23

fieryvova
Зарегистрирован: 2014-10-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

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

python my_script.py dict1
После этого, хочется получить возможность обращаться к словарю full_info_dictionary.dict1 (на месте dict1 может быть любое другое имя словаря).

PooH,
print(getattr(full_info_dictionary, sys.args[1])["key"])
выдает ошибку:
AttributeError: 'module' object has no attribute 'args'
#python3.2
Что я делаю не так?


Отредактировано fieryvova (Окт. 21, 2014 19:25:35)

Офлайн

#5 Окт. 21, 2014 19:58:57

ATOM
Зарегистрирован: 2012-04-01
Сообщения: 8
Репутация: +  1  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

Надо не sys.args а

sys.argv



—————
Python 3

Офлайн

#6 Окт. 21, 2014 20:04:43

fieryvova
Зарегистрирован: 2014-10-21
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Доступ к атрибутам метода

ATOM, точно! Вот это я промахнулся.

Всем откликнувшимся спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version