Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2016 21:34:50

anonymouss
Зарегистрирован: 2016-06-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пакеты в python

Могу ли я использовать пакеты, для того чтобы структурировать схожие классы (как пакеты в java), или они предназначены для чего-то другого?

Офлайн

#2 Июнь 9, 2016 22:26:41

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Пакеты в python

anonymouss
для того чтобы структурировать схожие классы (как пакеты в java)
Насколько я знаю в Java пакеты не позволяют “структурировать схожие классы”. Даже затрудняюсь предположить что вы имеете ввиду.

Согласно википедии (пакет Java) — механизм, позволяющий организовать Java классы в пространстве имен. Классы вроде как не меняются от того что вы их поместите в пакет.

Пакеты java и питона несколько различаются, например питон не накладывает ограничений на имена модулей и имена пакетов. Пакеты питона могут использоваться для разнесения кода в разные пространства имен.



Отредактировано doza_and (Июнь 9, 2016 22:40:22)

Офлайн

#3 Июнь 10, 2016 04:01:00

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Пакеты в python

anonymouss
Могу ли я использовать пакеты, для того чтобы структурировать схожие классы (как пакеты в java), или они предназначены для чего-то другого?
У тебя есть модуль - один файл питона с расширением .py. В модуль помещаются классы, относящиеся к чему-то одному. А вот сами модули уже можно объединять в пакеты. Для этого они просто кладутся в одну папку и в неё добавляется пустой файл __init__.py, после чего эта папка становится пакетом, который можно импортировать.

Вот если в третьем питоне зайдёшь в папку urllib, то увидишь там внутреннее устройство, потому что urllib - это пакет модулей.

При составлении модуля ты должен спрашивать “что делает этот модуль?”.
При составлении пакета ты должен спрашивать “что делает этот пакет?”.
Если ответ точный и единственный, то модуль или пакет спроектирован правильно.
Если же начинается “он делает и то, и это, и пятое, и десятое”, то надо его разделить.



Отредактировано py.user.next (Июнь 10, 2016 04:07:32)

Офлайн

#4 Июнь 10, 2016 07:42:18

anonymouss
Зарегистрирован: 2016-06-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пакеты в python

doza_and
Даже затрудняюсь предположить что вы имеете ввиду.
Я имеею ввиду, что при помощи пакетов классы групируют по тому, что они делают. Например в пакете java.io находятся классы отвечающие за ввод-вывод, в android.widget классы для работы с виджетами и т.д. Т.е файлы с кодом, не кладуд в одну папку, а структурируют по пакетам.

Офлайн

#5 Июнь 10, 2016 08:08:52

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Пакеты в python

Да вы правильно понимаете. Я просто пока не очень понимаю ваш стиь написания сообщений.
Вот вы пишете:

anonymouss
файлы с кодом, не кладуд в одну папку, а структурируют по пакетам.

Но по сути “структуировть модули в пакет” это и есть положить модули в одну папку. Вы это понимаете?





Отредактировано doza_and (Июнь 10, 2016 08:09:19)

Офлайн

#6 Июнь 10, 2016 08:34:00

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Пакеты в python

Никого не хочу обидеть - но помоему ТС такой же джава программист как и на питоне…

Любая импортируемая библиотека что на джаве что на питоне что на СИ это уже есть набор структурированных модулей содержащая в себе как правило все необходимое для выполнения требуемого от нее функционала.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Июнь 10, 2016 15:28:18

anonymouss
Зарегистрирован: 2016-06-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пакеты в python

ZerG
такой же джава программист как и на питоне…
Я и не являюсь программистом.
doza_and
Вы это понимаете?
Да

Офлайн

#8 Июнь 10, 2016 16:22:54

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Пакеты в python

ТОгда простите зачем вы задавали данный вопрос? Какую цель преследовали?
Что почерпнули?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#9 Июнь 10, 2016 17:04:09

anonymouss
Зарегистрирован: 2016-06-09
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Пакеты в python

ZerG
ТОгда простите зачем вы задавали данный вопрос? Какую цель преследовали? Что почерпнули?
Учусь программировать.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version