там модули. По сути import создаёт в локальном контексте объект с именем модуля, методы и свойства которого — всё, что описано в импортированном файле. Ну ещё некоторые манипуляции с пространством имён есть. То есть даже если в модуле при инициализации выполняется какой-то код, если ты сделал import двести раз подряд, то весь код в импортируемом файле выполнится только один раз.
А в С++, как и в PHP, include — это по сути команда скопипастить один кусок файла в другой. Гораздо более низкий уровень абстракции.
ты про ifdef module_name? Да, они для этого. И в таком случае include ничем не отличается от import. Но тогда и смысла писать include в середине файла нету, это в питоне смысл есть, потому что язык динамический и там это один из способов оптимизации
в плюсах модульной системы по факту нет как таковой. В отличие от питона, здесь все докостылируется программистами на препроцессоре и всемозможных соглашениях.
и да, у меня бугурт от умышленных американизмов. Ты мне мозги пытался запудрить понятием "маппинг в фс"? Надеялся, что я не догадаюсь, что ты говоришь о структуре файлов в проекте, что я подумаю какой ты крутой?
вот только в этот раз соглашения скрыты под абстракцией, а не надстраиваются над ней.
Иначе говоря, заключаются эти соглашения разработчиками языка, а не разработчиками на языке. Последним поебать, что там за говно под абстракцией, он просто пользуются модулями.
нет, я не только о структуре файлов в проекте. Проектов может быть много, как и работающих над ними команд. Тебя не должно волновать, какие хэдеры либы L ты можешь подключать, а какие "приватны". Точно так же тебя не должны волновать include paths, внутренние для этой либы, по крайней мере не настолько чтобы ебаться с билдсистемой по этому поводу.
tl;dr подумай о /usr/share/python/dist-packages и /usr/include, проекты здесь ни при чем
у меня два родных языка, в работе использую третий. В данном случае меня волнует обусловленный непониманием бугурт верехумана, и не волнует твой ололо-патриотический.
это не мой ололо-патриотический, а нормальный взгляд на вещи. Если ты не можешь высказаться нормально на родном языке и тебе надо вставлять американские слова — то это говорит только о твоем словарном запасе
это где? в этом свиче ?
а в питоне это норм
что как бы намекает =)
на самом деле include и import работают немного по-разному, так что там это приемлемо
а что делает import?
не важно где
это мне вообще воображение рисует, если что.
ааа. :-(
там модули. По сути import создаёт в локальном контексте объект с именем модуля, методы и свойства которого — всё, что описано в импортированном файле. Ну ещё некоторые манипуляции с пространством имён есть. То есть даже если в модуле при инициализации выполняется какой-то код, если ты сделал import двести раз подряд, то весь код в импортируемом файле выполнится только один раз.
А в С++, как и в PHP, include — это по сути команда скопипастить один кусок файла в другой. Гораздо более низкий уровень абстракции.
да. Но гарды как раз делают то, что и твой импорт
ты про ifdef module_name? Да, они для этого. И в таком случае include ничем не отличается от import. Но тогда и смысла писать include в середине файла нету, это в питоне смысл есть, потому что язык динамический и там это один из способов оптимизации
понятно
в плюсах модульной системы по факту нет как таковой. В отличие от питона, здесь все докостылируется программистами на препроцессоре и всемозможных соглашениях.
namespaces + guards = module
по названию конечно нет, но по факту да
нет. Ты забыл еще как минимум маппинг в фс.
в любом случае, абстракция есть абстракция, и в случае с модулями это абстракция из разряда нужных.
это достигается как раз теми соглашениями
и да, у меня бугурт от умышленных американизмов. Ты мне мозги пытался запудрить понятием "маппинг в фс"? Надеялся, что я не догадаюсь, что ты говоришь о структуре файлов в проекте, что я подумаю какой ты крутой?
я вообще под маппингом мог понять функцию map и долго думать, что за фигню ты сказал.
двачую. Это частично говорит о скудости владения своим родным языком
у него русский не родной как бы, так что норм. Но у меня бугурт
Похапе вей.
Ты забыл еще соглашения о выравнивании структур, размере базовых типов, etc. Т.е. практически, непротиворечивую и полную спецификацию ABI.
о таких нюансах я даже не знаю
Кстати, по топику,-- инклуды в конце файла вполне неплохая практика, если ты костыляешь какой-нибудь autolink для шиндовс (#pragma lib).
#define LIB_NAME "mylib"
#include "autolink_helper.h"
#undef LIB_NAME
В начале файла помещать такое говно — значит заставлять в 99% случаев читателя интерфейса пролистывать этот кусок.
я в qt moc-файлы цеплял инклюдами в конце, когда у меня непонятные баги с линковкой были.
вот только в этот раз соглашения скрыты под абстракцией, а не надстраиваются над ней.
Иначе говоря, заключаются эти соглашения разработчиками языка, а не разработчиками на языке. Последним поебать, что там за говно под абстракцией, он просто пользуются модулями.
"файловая система" — американизм?
нет, я не только о структуре файлов в проекте. Проектов может быть много, как и работающих над ними команд. Тебя не должно волновать, какие хэдеры либы L ты можешь подключать, а какие "приватны". Точно так же тебя не должны волновать include paths, внутренние для этой либы, по крайней мере не настолько чтобы ебаться с билдсистемой по этому поводу.
tl;dr подумай о /usr/share/python/dist-packages и /usr/include, проекты здесь ни при чем
у меня два родных языка, в работе использую третий. В данном случае меня волнует обусловленный непониманием бугурт верехумана, и не волнует твой ололо-патриотический.
это не мой ололо-патриотический, а нормальный взгляд на вещи. Если ты не можешь высказаться нормально на родном языке и тебе надо вставлять американские слова — то это говорит только о твоем словарном запасе
норм.
был бы дедфуд в треде — он бы назвал меня тупой питоноблядью. Магог сегодня в хорошем настроении и не троллит тебя. Это не норм, srsly.
*не троллит меня
... или же о проигрыше по выразительности одного языка другому в конкретной языковой ситуации.
в рамках того, что плюсцы говно — норм :)
Костыли же, да ты и сам, наверное, понимаешь.
третий раз за день жалею, что не могу из вебморды рекомендовать коменты.
АРЦ ПОЧИНИ
у магога болит голова и он сегодня няша :-(
ах вот оно тчо
импорт работает не только с модулями(единичные файлы), но и с пакетами, а там уже свои фичи
Да и вообще: http://docs.python.org/dev/library/imp.h...
char [] kortinko =
{
#include "goatse.txt"
};
по-шарпейски написал, ну да похуй