Все вещи совершенно разные между PHP и Python, и есть много причин.
Но кажется, что рекомендуемый способ делать вещи в python - это from file import
, но это похоже на то, чтобы включить библиотеки и прочее?
Действительно, операторы import
предназначены для импорта объектов из другого модуля в текущий модуль. Вы можете импортировать все объекты импортируемого модуля текущего модуля:
import foo
print foo.bar
или вы можете выбрать то, что вы хотите от этого модуля:
from foo import bar
print bar
и даже лучше, если импортировать модуль в два раза , он будет только один раз импортирован:
>> import foo as foo1
>> import foo as foo2
>> foo1 is foo2
True
Как вы отделяете код среди нескольких файлов?
Вы должны думать о своем коде ... Это называется дизайн программного обеспечения, и вот несколько правил:
- вы никогда не написать алгоритм на уровне модуля; вместо этого сделать его функцией, и вызывать эту функцию
- , вы никогда не создаете экземпляр объекта на уровне модуля; вы должны встроить его в функцию и вызвать эту функцию, если вам нужен объект в нескольких разных функциях, создайте класс и инкапсулируйте этот объект в этом классе, а затем используйте его в своих функциях, связанных с этим классом (так что теперь они называются методами)
Единственное исключение, когда вы хотите запустить программу из командной строки, добавьте:
if __name__ == "__main__":
в конце модуля. И мой лучший совет будет просто назвать свою первую функцию впоследствии:
if __name__ == "__main__":
main()
Это единственный способ сделать это, чтобы иметь один файл с целой кучей вызовов функций, а затем импортировать 15 других файлов?
Это не единственный способ сделать это, но это лучший способ сделать это. Вы делаете все свои алгоритмы в библиотеках функций и объектов, а затем импортируете точно, что вам нужно в других библиотеках и т. Д. Вот как вы создаете целую юниверсу многоразового кода и никогда не должны изобретать велосипед! Поэтому забудьте о файлах и подумайте о модулях, содержащих объекты.
Наконец, мой лучший совет для вас, изучающий python, - это unlearn всякая привычка и использование, которые вы имели при кодировании PHP, и изучать все это по-другому. В конце концов, это может сделать вас лучше инженером-программистом.
Я не отвечаю на ваш вопрос, потому что он не на 100% ясен, и я, вероятно, в конечном итоге отвечу на другой вопрос, но вы должны прочитать о '__init __. Py'-файлах и переменной уровня __all__'. – shx2
Что вы видите как разные между «включением» вещей из файла и «импортом» из этого файла? – BrenBarn
Я сделал это, чтобы объединить несколько операторов 'import' в один, используя пакеты. Однако предположим, что я не хочу, чтобы в главном файле python было 15 вызовов функций, я хочу, чтобы main.py имел 7 и child.py, чтобы иметь 8. И main.py будет включать child.py в некоторый номер строки, который будет заполняться содержимое child.py в main.py в этом месте. Точно так же, как работает php. Это то, о чем я думаю ... может быть, я думаю об этом неправильно? – Steven