Python с использованием переменных из другого файла - программирование
Подтвердить что ты не робот

Python с использованием переменных из другого файла

Я новичок и стараюсь сделать простой генератор случайных предложений - Как я могу вытащить случайный элемент из списка, который хранится в другом документе .py? Я использую

random.choice(verb_list) 

чтобы извлечь из списка. Как сообщить python, что verb_list находится в другом документе?

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

4b9b3361

Ответ 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().