Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 25, 2018 12:19:03

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

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

Файл test1.py

 import test2
test()

Файл test2.py
 def test():
	print('ok')

Ошибка
name ‘test’ is not defined



Отредактировано Ubhra (Окт. 25, 2018 14:58:32)

Офлайн

#2 Окт. 25, 2018 14:03:03

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Ubhra
Подскажите пожалуйста как разбить программу на несколько файлов.
а откуда функция create_config() в файле test1.py? ошибка name ‘test’ is not defined вообще не понятна откуда взялась. у меня ваш код выдал NameError: name ‘create_config’ is not defined что и должно быть о чем написал в начале поста.
Файл test1.py
 import test2
create_config = test2.test
create_config()

Офлайн

#3 Окт. 25, 2018 14:58:46

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Исправил



Офлайн

#4 Окт. 25, 2018 17:09:25

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Я так полагаю, тут разные пространства имен.



Офлайн

#5 Окт. 25, 2018 19:00:20

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

test1.py
package
__init__.py
test2.py

Файл test1.py

 from package import *
test()

Файл __init__.py
 import test2.py

Файл test1.py
 def test():
    print('ok')

Ошибка
No module named ‘test2’



Офлайн

#6 Окт. 26, 2018 01:41:40

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

слушайте, ну не мучайте себя и других, ну сходите почитайте учебник,книгу по питону. Ну основы основ… милион раз описаны. А вы тут методом тыка пытаетесь познать истину, там где этого не надо



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Окт. 26, 2018 10:26:10

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Так там и пишут что нужен в подкаталогах файл __init__.py
Но он не находит модуль прописанный в нем.



Офлайн

#8 Окт. 26, 2018 12:23:05

dredsss
Зарегистрирован: 2018-10-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Ubhra
import test2.py
Серьезно? И зачем __init__ в каталоге, у тебя библиотека?

Офлайн

#9 Окт. 26, 2018 14:56:22

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Рядом с исполняемым файлом папка, в ней файлы из которых нужны функции.
В мануале написано что в каждом подкаталоге нужен __init__

https://docs.python.org/3/tutorial/modules.html#packages



Офлайн

#10 Окт. 26, 2018 15:03:14

Ubhra
От:
Зарегистрирован: 2009-03-04
Сообщения: 133
Репутация: +  2  -
Профиль   Отправить e-mail  

Разделить программу на несколько файлов

Спасибо, решил.
В __init__ нужно указывать не файл а функцию:

 from package.test2 import test



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version