Почему python использует модули, а не только функции модуля на основном языке. Это было бы очень полезно и довольно легко, особенно для основных, таких как случайные, re и os. Если Python проповедует простоту и минимализм, зачем вам писать лишние строки кода?Почему Python использует модули?
ответ
1) Zen of Python # 19: «Пространства имен - одна хорошая идея - давайте сделаем больше!»
Именованные модули хороши тем, что исключают вероятность столкновения функций с тем же именем. Если бы все было встроенным, то os.error()
будет сталкиваться с logging.error()
(и небесами запрещают вы пытаетесь определить свою собственную функцию, называемую error()
!)
Ditto встроенного int()
функции и функций random.int()
. Вам нужно будет написать последний как random_int()
, который так же печатает, как и синтаксис модуля. Почему бы не сделать пространства имен явным и использовать модули?
Это по той же причине, что и синтаксис from os import *
- он загрязняет ваше пространство имен и вводит шанс на захватывающие ошибки столкновения имен.
2) Кто решает, что такое встроенный и какой модуль?
В большинстве программ, которые вы лично пишете, участвуют os
и re
. Лично каждый сценарий, который я написал за последние три месяца, включал sqlite3
, csv
и logging
. Должны ли они включаться в качестве встроенных для каждой программы, какие когда-либо пишут программисты на Python?
Через некоторое время ваш список встроенных функций будет больше, чем Бен Хур.
памяти и эффективность скорости
объекты, которые были созданы (и все является объектом в Python) занимают память, выделенную в процессе интерпретатора Python. При импорте модуля выполняется его код, что приводит к созданию множества объектов (функций, классов, данных и т. Д.), Большинство из которых должны сохраняться в памяти, чтобы быть полезными. Разделяя функциональность на логически различные модули, мы позволяем программам выделять свою память только тем объектам, которые предоставляют необходимые им функции.
Если бы все было встроено, у вас был бы огромный кусок памяти, посвященный всем классам, функциям и другим объектам всей стандартной библиотеки, менее 1% которых действительно было бы полезно для средней программы , Кроме того, вы будете тратить время на выполнение всего кода, который создает все эти объекты, каждый раз, когда начинается интерпретатор.
+1 проницательный. –
- 1. Python: Импорт Модули Модули
- 2. Почему python использует «магические методы»?
- 3. Почему некоторые модули Python должны быть «скомпилированы»?
- 4. Почему python присоединяет импортированные модули к пакету?
- 5. Модули-тестирование python-запросов?
- 6. Относительные модули Python
- 7. Как инкапсулировать модули python?
- 8. Python Этикет: Импортирование модули
- 9. Загружать модули условно Python
- 10. Python Enums через модули
- 11. Какие модули использует модуль PostgreSQL «earthdistance»?
- 12. Почему функция ввода python использует символы ласточки?
- 13. Почему python использует redis так медленно?
- 14. Почему Python `except` не использует` isinstance`?
- 15. PYTHON - почему многопроцессорный пул использует 100% процессора?
- 16. Почему словарь python использует столько памяти?
- 17. Найти модули, необходимые скрипту python
- 18. Модули в Python для Windows
- 19. модули Python импортировать ошибку
- 20. Скомпилированы ли модули Python?
- 21. Пакеты и модули Python
- 22. Общие модули Python
- 23. Модули Python, соответствующие шаблону
- 24. Python не устанавливает модули?
- 25. Модули Python не работают
- 26. Python: исключая модули Pyinstaller
- 27. Модули python с RubyPython
- 28. Python модули против классов
- 29. Где сохранить модули python
- 30. python, передающий модули параметров
Некоторые программы могут не использовать эти модули. Зачем вам нужен код в вашей программе, который вы не собираетесь использовать? –
Хотя это верно, многие, многие программы используют модули re, os или random, в то время как некоторые из более неясных функций в python используются значительно меньше. – Billjk
«Пространства имен - одна хорошая идея - давайте сделаем больше!» - http://www.python.org/dev/peps/pep-0020/ – monkut