Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Python

Поиск

НовоС Π½Π° сайтС

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π² Python

БистСма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ позволяСт Π²Π°ΠΌ логичСски ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π½Π° Python. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ процСсс написания ΠΈ понимания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Говоря простым языком, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python это просто Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠ΄ Π½Π° Python. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, объявлСния классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ исполняСмый ΠΊΠΎΠ΄.

Команда import в Python:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой питоновский Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Π² Π½Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ import. Команда import Π² Python ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ синтаксисом:

Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python встрСчаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ import, ΠΎΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ (Π΄Π°Π΅Ρ‚ доступ) этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ссли ΠΎΠ½ присутствуСт Π² ΠΏΡƒΡ‚ΠΈ поиска Python. ΠŸΡƒΡ‚ΡŒ поиска Python это список Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ поиск ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math слСдуСт Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

Π’Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся лишь ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ€Π°Π· ΠΎΠ½ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. Π­Ρ‚ΠΎ прСпятствуСт Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ содСрТимого модуля.

Однако это ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ Π² своСм собствСнном ΠΊΠΎΠ΄Π΅.

ΠœΠ΅ΡΡ‚ΠΎΠ½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Python:

Когда Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΈΡ‰Π΅Ρ‚ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

ДирСктория, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ вызываСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

Если ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Python ΠΈΡ‰Π΅Ρ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π² консольной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PYTHONPATH.

Если ΠΈ Ρ‚Π°ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Python провСряСт ΠΏΡƒΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠŸΡƒΡ‚ΡŒ поиска ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ сохранСн Π² систСмном ΠΌΠΎΠ΄ΡƒΠ»Π΅ sys Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ path. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ sys.path содСрТит всС Ρ‚Ρ€ΠΈ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… мСста поиска ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python установлСнных Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, установлСнных Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π§Π΅Ρ€Π΅Π· нСсколько сСкунд Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список всСх доступных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ своСго модуля Π² Python:

А Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠ΄ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:

Hello from module_1

Ѐункция dir():

ВстроСнная функция dir() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ отсортированный список строк, содСрТащих всС ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

АрхитСктура ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python:

Код Π½Π° Python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Python:

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Python ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠ°ΠΊΠ΅Ρ‚ это дирСктория (ΠΏΠ°ΠΏΠΊΠ°), содСрТащая нСсколько ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²-скриптов.

НапримСр, ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Π’ Ρ„Π°ΠΉΠ»Π΅ inside_file.py ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° нСкая функция foo. Π’ΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ foo, Π² Ρ„Π°ΠΉΠ»Π΅ my_file слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄:

from my_package.inside_file import foo

Π’Π°ΠΊ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ my_package Ρ„Π°ΠΉΠ»Π° __init__.py. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустой Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщаСт Python, Ρ‡Ρ‚ΠΎ данная дирСктория являСтся ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’ Python 3.3 ΠΈ Π²Ρ‹ΡˆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» __init__.py Π² ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ стало Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ это Ρ€Π°Π΄ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ числа Π² Python

ΠžΡ‡Π΅Π½ΡŒ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ вычислСния модуля числа Π² Python. Рассмотрим, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ числа, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ способы Π΅Π³ΠΎ вычислСния. Π’Π°ΠΊ ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ коснСмся комплСксных чисСл.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ числа

Часто Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ трСбуСтся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ.

ΠŸΡ€ΠΈ вычислСнии модуля Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ 3 ситуации:

Но это всС справСдливо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл. Π§Π΅ΠΌΡƒ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ комплСксных?

КомплСксноС число состоит ΠΈΠ· Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ ΠΈ ΠΌΠ½ΠΈΠΌΠΎΠΉ. ГСомСтричСски это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ 2 ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ оси: Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈ ΠΌΠ½ΠΈΠΌΡƒΡŽ. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅ΠΌ Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½Ρ‹Ρ… осях Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ. ΠœΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π»ΠΈΠ½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ°, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Π² эту Ρ‚ΠΎΡ‡ΠΊΡƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

ВычислСниС

Π’Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

ВсС эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Π² Python 2, Ρ‚Π°ΠΊ ΠΈ Π² Python 3.

Для вычислСния Π² Python модуля числа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция abs. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

Π‘Π²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅Ρ‚ возмоТности ΠΈΠ»ΠΈ ТСлания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ своС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

На основС Ρ‚Π°ΠΊΠΎΠ³ΠΎ условия сдСлаСм свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ комплСксного числа

ΠœΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ происходит вычислСниС с Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ числами. Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, ΠΊΠ°ΠΊ Π² языкС программирования Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ комплСксного.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ fabs ΠΌΡ‹ Π½Π΅ смоТСм Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Если попытаСмся это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ привСдСния комплСксного числа ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ (TypeError).

А Π²ΠΎΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ abs ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ удаСтся.

Или ΠΆΠ΅ напишСм свою Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Но Π½Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ math для вычислСния ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ корня.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Python – ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ создания, ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ использования

ΠœΠΎΠ΄ΡƒΠ»Π΅ΠΌ python ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΊΠΎΠ΄, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, класс ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ python. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ΄Π° Python, сохранСнный с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ(.py), рассматриваСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π£ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля python.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π² Python ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ°Π½Π΅Π²Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π² логичСской ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ file.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func, которая содСрТит ΠΊΠΎΠ΄ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сообщСния Π½Π° консоль.

НСобходимо Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² наш основной ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ displayMsg(), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ file.

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° модуля Π² ΠΊΠΎΠ΄ Python

Нам Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΊΠΎΠ΄ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Python прСдоставляСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ любого исходного Ρ„Π°ΠΉΠ»Π° Python, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² этот Ρ„Π°ΠΉΠ» Π² качСствС модуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ исходный Ρ„Π°ΠΉΠ» Python.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Π½ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ€Π°Π· ΠΎΠ½ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π² наш Ρ„Π°ΠΉΠ».

Бинтаксис для использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ displayMsg(), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ file.py, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½ΠΈΠΆΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ from-import

ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π² python имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² модуля. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ from-import ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Бинтаксис для использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° from-import ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ calculation, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: суммированиС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ from … import всСгда Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅ΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· модуля. Π­Ρ‚ΠΎ Π½Π΅ позволяСт Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ Π±Ρ‹Ρ‚ΡŒ тяТСлСС. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ *.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис.

ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ модуля

Python прСдоставляСт Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ модуля с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя для этого модуля Π² нашСм исходном Ρ„Π°ΠΉΠ»Π΅ python.

Бинтаксис для пСрСимСнования модуля ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

ИспользованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir()

Ѐункция dir() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ отсортированный список ΠΈΠΌΠ΅Π½, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π­Ρ‚ΠΎΡ‚ список содСрТит всС ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² этом ΠΌΠΎΠ΄ΡƒΠ»Π΅.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Ѐункция reload()

Как ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Ρ€Π°Π· ΠΎΠ½ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π² исходный Ρ„Π°ΠΉΠ» python. Однако, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, python прСдоставляСт Π½Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ reload(). Бинтаксис использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ reload() ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ вычислСниС модуля, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΊΠΎΠ΄Π°.

ОбъСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ Python ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ связаны с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ областСй видимости. ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, содСрТат Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

ВсС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, содСрТат Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, которая ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° самой этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Если Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ с двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ областями дСйствия, Ρ‚. Π΅. локальной ΠΈ глобальной, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒΡΡ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Python

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² python ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, прСдоставляя ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ содСрТит ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для эффСктивной ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° уровня прилоТСния.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈΒ» Π² вашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ пошагово.

1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈ / home.

2. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ исходный Ρ„Π°ΠΉΠ» python с ΠΈΠΌΠ΅Π½Π΅ΠΌ ITEmployees.py / home / Employees.

3. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ создайтС Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» python с ΠΈΠΌΠ΅Π½Π΅ΠΌ BPOEmployees.py ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ getBPONames().

4. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Β«Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС, содСрТит Π΄Π²Π° модуля Python. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сюда Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ __init__.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

5. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Β«Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΠΈΒ» стал ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ, содСрТащим Π΄Π²Π° модуля Python. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ __init__.py Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΏΠ°ΠΊΠ΅Ρ‚.

6. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Employees, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² наш исходный Ρ„Π°ΠΉΠ» python. Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим простой исходный Ρ„Π°ΠΉΠ» Python Π² нашСм домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅(/ home), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄ΠΎ любого уровня Π² зависимости ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ прилоТСния.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° структура ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² систСмы управлСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, которая содСрТит Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°: Admin, Librarian ΠΈ Student. ΠŸΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ содСрТат ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Python. Π£Ρ€ΠΎΠΊ 13. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста. ΠšΠ»Π°ΡΡΡ‹, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ константы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ приходится часто ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈ, Π² дальнСйшСм, Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π² свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ нСобходимости. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пространства ΠΈΠΌΠ΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с модулями.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ Π² Python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python?

Под ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π² Python понимаСтся Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π½ΠΈΡ… Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы, константы ΠΈ Ρ‚.ΠΏ. МоТно условно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для нСпосрСдствСнного запуска, Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для импортирования ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘Ρ‚ΠΎΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° языкС Python, Π½ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C).

Как ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Python?

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python это Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ конструкциСй:

import имя_модуля

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ использованиС модуля math, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ.

Π—Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, для этого ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ послС слова import:

import имя_модуля1, имя_модуля2

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ псСвдоним для модуля Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ синтаксисом:

import имя_модуля as Π½ΠΎΠ²ΠΎΠ΅_имя

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ любой ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ модуля, Π²Π°ΠΌ всСгда придСтся ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя модуля (ΠΈΠ»ΠΈ псСвдоним). Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ from … import…

from имя_модуля import имя_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΈ этом импортируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: функция cos), ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСдоступны, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈ ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя модуля.

Для имортирования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· модуля, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ.

from имя_модуля import имя_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°1, имя_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°2

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ псСвдоним.

from имя_модуля import имя_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° as псСвдоним_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„ΡƒΠΊΠ½Ρ†ΠΈΠΈ, классы ΠΈ Ρ‚.ΠΏ. ΠΈΠ· модуля, Ρ‚ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° from … import …

from имя_модуля import *

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ Π² Python?

ΠŸΠ°ΠΊΠ΅Ρ‚ Π² Python – это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТащий Ρ„Π°ΠΉΠ» __init__.py. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для формирования пространства ΠΈΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с модулями Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ уровня влоТСнности (Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ).

Для импортирования ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с модулями.

ИспользованиС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Python

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

ΠŸΠ°ΠΊΠ΅Ρ‚ fincal содСрТит Π² сСбС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с простыми ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°ΠΌΠΈ ( simper.py ), слоТными ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°ΠΌΠΈ ( compper.py ) ΠΈ Π°Π½Π½ΡƒΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ( annuity.py ).

Для использования Ρ„ΡƒΠΊΠ½Ρ†ΠΈΠΈ ΠΈΠ· модуля Ρ€Π°Π±ΠΎΡ‚Ρ‹ с простыми ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Π€Π°ΠΉΠ» __init__.py ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ __all__, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽ список ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ импортируСтся ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ

from имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π° import *

НапримСр для нашСго случая содСрТимоС __init__.py ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΠΌ:

P.S.

Если Π²Π°ΠΌ интСрСсна Ρ‚Π΅ΠΌΠ° Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Pandas. На нашСм сайтС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅. ВсС ΡƒΡ€ΠΎΠΊΠΈ ΠΏΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas собраны Π² ΠΊΠ½ΠΈΠ³Π΅ β€œPandas. Π Π°Π±ΠΎΡ‚Π° с данными”.
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½
ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π›ΠΈΠΊΠ±Π΅Π· ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ ΠΈ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ модулям Π² Python

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΈΡ‚ΠΎΠ½

О Ρ‡Ρ‘ΠΌ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Ρ€Π΅Ρ‡ΡŒ

Как Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠΎΠ΄ Π½Π° Python хранится Π² модулях (modules), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ (packages). Π­Ρ‚ΠΎ руководство ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, ΠΎΠ΄Π½Π°ΠΊΠΎ совсСм Π½Π΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ нСльзя, поэтому я Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ расскаТу ΠΈ ΠΎ Π½ΠΈΡ…. МногоС ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ модулям, справСдливо ΠΈ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², особСнно Ссли ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

ΠšΡ€Π°Ρ‚ΠΊΠΎ ΠΎ модулях

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π² Python β€” это Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ΄ΠΎΠΌ. Π’ΠΎ врСмя ΠΆΠ΅ исполнСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдставлСн ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

ΠŸΡ€ΠΈ этом опрСдСлСния ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ сущности Π½ΠΈΡ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ: ΠΈ Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ β€” это всСго лишь ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ссылки Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ класса (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ значСния).

Π’Π°ΠΊΠΎΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅: ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·Ρ€ΠΎΡΡˆΠΈΠΉΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° нСсколько, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вынСсСнныС опрСдСлСния Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΡ€ΠΈ этом с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния внСшнСго Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π» Π΄ΠΎ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ модуля Π½ΠΈΡ‡Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π½Π΅ сломаСтся.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ содСрТимого

Π’ Python Π½Π΅Ρ‚ настоящСго сокрытия Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², поэтому ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° модуля Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ всСгда доступны послС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° послСднСго. Однако сущСствуСт ряд соглашСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° процСсс импортирования ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ инструмСнтов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… с ΠΊΠΎΠ΄ΠΎΠΌ.

Π’Π°ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, имя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… начинаСтся с ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ подчёркивания, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π±Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ «Π΄Π»Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ использования», ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² IDE ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ «Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ». И linter ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ ΠΎΠ± использовании Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΌΠΎΠ», «Π½Π΅Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ!». «ΠžΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ» состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ состав Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π±Π΅Π· увСдомлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ программист, использовавший Π² своём ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ части Ρ‡ΡƒΠΆΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° рискуСт Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ стороннСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ модуля, ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ упомянутыС Π²Ρ‹ΡˆΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ «Π΄Π»Ρ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ пользования»). И Π΄Π°Π½Π½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ касаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ, содСрТащихся Π² самом ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π½ΠΎ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… сущностСй. Π’Π΅Π΄ΡŒ всС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ становятся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ Ρ‚ΠΎΠ³ΠΎ модуля, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹.

Π–ΠΈΠ²ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ видимости Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ всё Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅. ΠŸΡƒΡΡ‚ΡŒ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°:

А эти Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΠ΄Π½Ρ‹:

Π˜ΠΌΠΏΠΎΡ€Ρ‚ import other_module я Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ ΠΊΠ°ΠΊ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ случай.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΈΠΌΠΏΠΎΡ€Ρ‚ всСго содСрТимого module:

ΠŸΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΡ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° from other_module import * Ρ‚ΠΎΠΆΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ ΠΈ я ΠΈΡ… Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ.

НаконСц-Ρ‚ΠΎ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹!

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

ΠŸΠ°ΠΊΠ΅Ρ‚ с СдинствСнным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ __init__.py ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π²Π΅Π΄Ρ‘Ρ‚ сСбя ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ модуля опрСдСляСт Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски вмСстС с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ, Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ модуля всСгда сначала ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ всСх Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (Ссли ΠΎΠ½Ρ‹Π΅ Π΅Ρ‰Ρ‘ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ, Π½ΠΎ ΠΎΠ± этом я расскаТу Π½ΠΈΠΆΠ΅).

Рассмотрим, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²:

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅, Ссли ΠΌΡ‹ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΡ‡ΠΊΡƒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° всСх __init__.py ΠΏΠΎ Π΄ΠΎΡ€ΠΎΠ³Π΅? НС Π±ΡƒΠ΄Π΅Ρ‚! ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π°Ρ Π·Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΡΡˆΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ __init__.py (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹, Π½ΠΎ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° всСгда Ρ€Π°Π·Π½Ρ‹Π΅). ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ импортирования модуля Π½Π΅ приводят ΠΊ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ лишь Π½ΡƒΠΆΠ½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ области видимости.

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ __all__

Π’ΠΎΡ‚ структура ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Π€Π°ΠΉΠ» ΠΆΠ΅ package/__init__.py содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ (ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это!):

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΌ достаточно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½: Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ «Π²Π³Π»ΡƒΠ±ΡŒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ «Ρ‡Π΅Ρ€Π΅Π· Π·Π²Ρ‘Π·Π΄ΠΎΡ‡ΠΊΡƒ» ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Если ΠΆΠ΅ Π²Π°ΠΌ Π²Π΄Ρ€ΡƒΠ³ Ρ‚Π°ΠΊΠΎΠ³ΠΎ захочСтся, Π²Ρ‹ всСгда смоТСтС Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… уровнях Π² __init__.py ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ from x import * ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΏΠ»ΠΎΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости со всСм Π½ΡƒΠΆΠ½Ρ‹ΠΌ содСрТимым. Но Ρ‚Π°ΠΊΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ довольно Ρ€Π΅Π΄ΠΊΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ «Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚» Π½ΠΈ IDE, Π½ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΌΡƒ поиску ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ„ΠΈΡ‡Π΅ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΅Ρ‘ Π² Π²ΠΈΠ΄Ρƒ β€” Π½Π΅ Π²Ρ€Π΅Π΄Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся.

Π˜Π·ΡƒΡ‡Π°ΠΉΡ‚Π΅ Python Π½Π° Π₯СкслСтС ΠŸΠ΅Ρ€Π²Ρ‹Π΅ курсы Π² профСссии Python-программист доступны бСсплатно сразу послС рСгистрации. НачнитС сСгодня, ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠΌ для вас Ρ‚Π΅ΠΌΠΏΠ΅.

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ __main__ нСльзя ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом, поэтому ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π±ΠΎΡΡ‚ΡŒΡΡ случайного ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ прямо Π½Π° Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅: всё Ρ€Π°Π²Π½ΠΎ странно Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ __main__ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ имя Ρ€Π°Π²Π½ΠΎ __main__ (Ρ…Π΅-Ρ…Π΅!).

PEP 420, ΠΈΠ»ΠΈ нСявныС пространства ΠΈΠΌΡ‘Π½

Π Π°Π· ΡƒΠΆ Ρ€Π°Π·Π²Ρ‘Π» Π»ΠΈΠΊΠ±Π΅Π·, расскаТу ΠΈ ΠΏΡ€ΠΎ эту ΡˆΡ‚ΡƒΠΊΡƒ.

Π”ΠΎΠ»Π³ΠΎΠ΅ врСмя Π² Python ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ обязаны ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ„Π°ΠΉΠ» __init__.py β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ этого Ρ„Π°ΠΉΠ»Π° позволяло ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с модулями (с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Python Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠΎΠ³). Но с вСрсии Python3.3 вступил Π² силу PEP 420, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ пространства ΠΈΠΌΡ‘Π½ «Π½Π° вырост».

Π’ΡƒΡ‚ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π΅ срабатывало Ρ€Π°Π½Π΅Π΅ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. Если срСди ΠΏΡƒΡ‚Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ находится Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Π­Ρ‚ΠΎ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ вас ΠΎΡ‚ смСшивания сторонних ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с систСмными. И Π΄Π°ΠΆΠ΅ просто ΠΎΡ‚ ошибок имСнования: Π½Π°Π·Π²Π°Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ называСтся встроСнный ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ β€” ваши опрСдСлСния Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ β€” пространства ΠΈΠΌΡ‘Π½ (Namespace Packages, NP) β€” Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ β€” Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, поэтому Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² систСмный ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ удастся. И Ρ‚ΡƒΡ‚ всё Π·Π°Ρ‰ΠΈΡ‰Π΅Π½ΠΎ!

Π’Π°ΠΆΠ½ΠΎ: ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ссли встрСтятся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ NP с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚ΠΎ ΠΏΠΎΠ±Π΅Π΄ΠΈΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚! А NP, сколько Π±Ρ‹ ΠΈΡ… Π½Π΅ Π±Ρ‹Π»ΠΎ, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹!

ЦикличСскиС ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹

Если ΠΆΠ΅ приспичиваСт, ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ «Π½Ρƒ ΠΎΡ‡Π΅Π½ΡŒ Π½ΡƒΠΆΠ½ΠΎ», Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ:

Π”Π°, это ΠΊΠΎΡΡ‚Ρ‹Π»ΡŒ. Но ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ β€” Π΄ΠΎ блиТайшСго большого Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ настраивайтС linter Π½Π° ловлю Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ костыли Ρ…ΠΎΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ!

Поиск ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

ΠŸΠ°ΠΉΡ‚ΠΎΠ½ ΠΈΡ‰Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² дирСкториях, Π²ΠΎ врСмя исполнСния пСрСчислСнных Π² спискС sys.path β€” ΠΏΠΎ порядку ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ послСднСму.

Π’ этом спискС ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ располоТСны Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ со сторонними ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСльзя Π±Ρ‹Π»ΠΎ случайно Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ стандартный ΠΏΠ°ΠΊΠ΅Ρ‚ сторонним (ΠΏΠΎΠΌΠ½ΠΈΠΌ: ΠΊΡ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Ρ‚ΠΎΠ³ΠΎ ΠΈ Ρ‚Π°ΠΏΠΊΠΈ β€” срСди Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ загруТаСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ попавшийся ΠΏΠ°ΠΊΠ΅Ρ‚).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡƒΡ‚ΠΈ Ρ‚Ρ€ΠΎΠ³Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, всё Π²ΠΏΠΎΠ»Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ «Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ само». Но Ссли ΠΎΡ‡Π΅Π½ΡŒ хочСтся, Ρ‚ΠΎ ΠΏΡƒΡ‚Π΅ΠΉ Ρƒ вас нСсколько:

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ β€” простой ΠΈ понятный. НС слоТнСС добавлСния ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² PATH (Π΄Π°ΠΆΠ΅ синтаксис Ρ‚ΠΎΡ‚ ΠΆΠ΅).

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ окруТСния, sys.path Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. ИмСнно это позволяСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ Π±Ρ‹Ρ‚ΡŒ самодостаточным (Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° любой машинС с подходящСй ОБ β€” Π΄Π°ΠΆΠ΅ Π±Π΅Π· установлСнного Π² систСму Python!).

Π§Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ раскрыто?

Π― ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ стал Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ

Π’Π΅ΠΌΡ‹ эти насколько интСрСсны, Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ Π²Π΅Π»ΠΈΠΊΠΈ. На нашС ΡΡ‡Π°ΡΡ‚ΡŒΠ΅, самим Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ ΠΈ слоТной ΠΌΠ°ΡˆΠΈΠ½Π΅Ρ€ΠΈΠΈ приходится Ρ€Π΅Π΄ΠΊΠΎ. ΠœΡ‹ просто ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ магичСскими Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π°ΠΌΠΈ, Π° Π·Π°Ρ‡Π°Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΠ΅ πŸ™‚ Если ΠΆΠ΅ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΌΠ°Π³ΠΈΠΈ, докумСнтация Π²Π°ΠΌ Π² Ρ€ΡƒΠΊΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *