Python с использованием переменных из другого файла
Я новичок и стараюсь сделать простой генератор случайных предложений -
Как я могу вытащить случайный элемент из списка, который хранится в другом документе .py?
Я использую
random.choice(verb_list)
чтобы извлечь из списка. Как сообщить python, что verb_list находится в другом документе?
Также было бы полезно узнать, что называется принципом решения. Я представляю себе что-то вроде "ссылки на файл" "мостовое соединение" и т.д.
Ответы
Ответ 1
Вы можете импортировать переменные из файла:
vardata.py
verb_list = [x, y, z]
other_list = [1, ,2, 3]
something_else = False
mainfile.py
from vardata import verb_list, other_list
import random
print random.choice(verb_list)
вы также можете сделать:
from vardata import *
чтобы импортировать все из этого файла. Будьте осторожны с этим, хотя. Вы не хотите иметь коллизии имен.
Кроме того, вы можете просто импортировать файл и получить доступ к переменным, хотя его пространство имен:
import vardata
print vardata.something_else
Ответ 2
Его называют importing.
Если это data.py
:
verb_list = [
'run',
'walk',
'skip',
]
и это foo.py
:
#!/usr/bin/env python2.7
import data
print data.verb_list
Затем запуск foo.py
будет доступ к verb_list
из data.py
.
Возможно, вам захочется работать через раздел Модули учебника Python.
Если verb_list
хранится в script, что вы хотите делать и другие вещи, тогда вы столкнетесь с проблемой, когда script запускается, когда все, что вам нужно делать, это импортировать свои переменные. В этом случае стандартная задача - сохранить все функции script в функции с именем main()
, а затем использовать магическое заклинание:
verb_list = [
'run',
'walk',
'skip',
]
def main():
print 'The verbs are', verb_list
if __name__ == '__main__':
main()
Теперь код в main()
не будет запущен, если все, что вы делаете, это import data
. Если вам интересно, создатель Python Гвидо ван Россум написал статью о написании более сложных функций Python main()
.