Форум сайта python.su
0
Привет! Я новичок, так что не судите строго за название.
Есть full_info_dictionary.py, который представляет собой набор питоновских словарей вида:
d = { "key" : "value" }
import full_info_dictionary type(full_info_dictionary) #<class 'module'>
full_info_dictionary.d["key"]
full_info_dictionary.sys.args[1]["key"]
AttributeError: 'module' object has no attribute 'sys'
Офлайн
9
Лучше пользоваться классами. Не совсем понимаю вот это:
fieryvova
передавать ему не конкретный словарь (здесь это d), а имя словаря через аргумент командной строки. То есть:
full_info_dictionary.sys.args
Офлайн
72
getattr(full_info_dictionary, sys.args[1])["key"]
Офлайн
0
alexsis,
я хочу выполнять питоновский скрипт, передавая ему, в качестве аргумента, название словаря из full_info_dictionary.py, чтобы потом к нему обращаться. То есть, выбор массива определяется аргументом командной строки, а не конкретным указанием его имени в коде скрипта.
python my_script.py dict1
print(getattr(full_info_dictionary, sys.args[1])["key"])
AttributeError: 'module' object has no attribute 'args' #python3.2
Отредактировано fieryvova (Окт. 21, 2014 19:25:35)
Офлайн
1
Надо не sys.args а
sys.argv
Офлайн
0
ATOM, точно! Вот это я промахнулся.
Всем откликнувшимся спасибо!
Офлайн