Python ΠΌΠΎΠ΄ΡƒΠ»ΡŒ: Π Π°Π±ΠΎΡ‚Π° с модулями: созданиС, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ инструкциями import ΠΈ from

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π Π°Π±ΠΎΡ‚Π° с модулями: созданиС, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ инструкциями import ΠΈ from

ΠœΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π² Python называСтся любой Ρ„Π°ΠΉΠ» с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ (Π΄Π°-Π΄Π°, всС Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ писали, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ модулями). Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ написанный Π²Π°ΠΌΠΈ.

КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΅Π³ΠΎ классам, функциям ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. НуТно Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Python, Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° C ΠΈΠ»ΠΈ C++.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ модуля ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции import. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ os для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ:

>>> import os
>>> os.getcwd()
'C:\\Python33'

ПослС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова import указываСтся Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля. Одной инструкциСй ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, хотя этого Π½Π΅ рСкомСндуСтся Π΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это сниТаСт Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ time ΠΈ random.

>>> import time, random
>>> time.time()
1376047104.056417
>>> random.random()
0.9874550833306869

ПослС импортирования модуля Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ становится ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ модуля. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ константС e, располоТСнной Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ math:

>>> import math
>>> math.e
2.718281828459045

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ модуля Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½, возбудится ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ AttributeError. А Ссли Π½Π΅ удастся Π½Π°ΠΉΡ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для импортирования, Ρ‚ΠΎ ImportError.

>>> import notexist
Traceback (most recent call last):
  File "", line 1, in
    import notexist
ImportError: No module named 'notexist'
>>> import math
>>> math.Ё
Traceback (most recent call last):
  File "", line 1, in
    math.Ё
AttributeError: 'module' object has no attribute 'Ё'

ИспользованиС псСвдонимов

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

>>> import math as m
>>> m.e
2.718281828459045

Π’Π΅ΠΏΠ΅Ρ€ΡŒ доступ ΠΊΠΎ всСм Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ модуля math осущСствляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ math Π² этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΆΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ послС этого Π½Π΅ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ import math, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ m, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ math).

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ from

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ модуля ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции from. Она ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²:

from <НазваниС модуля> import <Атрибут 1> [ as <ПсСвдоним 1> ], [<Атрибут 2> [ as <ПсСвдоним 2> ] ...]
from <НазваниС модуля> import *

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· модуля Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ псСвдоним, ΡƒΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова as.

>>> from math import e, ceil as c
>>> e
2.718281828459045
>>> c(4.6)
5

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строках, Ссли ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ, для Π»ΡƒΡ‡ΡˆΠ΅ΠΉ читаСмости ΠΊΠΎΠ΄Π°:

>>> from math import (sin, cos,
...           tan, atan)

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ инструкции from позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ всС (Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΠΏΠΎΡ‡Ρ‚ΠΈ всС) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· модуля. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· модуля sys:

>>> from sys import *
>>> version
'3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)]'
>>> version_info
sys.version_info(major=3, minor=3, micro=2, releaselevel='final', serial=0)

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Если Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° пСрСмСнная __all__ (список Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹), Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· этого списка. Если пСрСмСнная __all__ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с Π½ΠΈΠΆΠ½Π΅Π³ΠΎ подчёркивания. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСх Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠ· модуля ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ пространство ΠΈΠΌΠ΅Π½ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ„Π°ΠΉΠ» mymodule.py, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

def hello():
    print('Hello, world!')

def fib(n):
    a = b = 1
    for i in range(n - 2):
        a, b = b, a + b
    return b

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² этой ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅ создадим Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, main.py:

import mymodule

mymodule.hello()
print(mymodule.fib(10))

Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚:

Hello, world!
55

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! Π’Ρ‹ сдСлали свой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ! НапослСдок ΠΎΡ‚Π²Π΅Ρ‡Ρƒ Π΅Ρ‰Ρ‘ Π½Π° ΠΏΠ°Ρ€Ρƒ вопросов, связанных с созданиСм ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

Как Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ?

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди) Π±ΡƒΠ΄ΡƒΡ‚ Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ нСльзя ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово (ΠΈΡ… список ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚). Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ нСльзя Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с Ρ†ΠΈΡ„Ρ€Ρ‹. И Π½Π΅ стоит Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΈΠ· встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ это создаст большиС нСудобства ΠΏΡ€ΠΈ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ использовании.

ΠšΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ?

Π’ΡƒΠ΄Π°, Π³Π΄Π΅ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ. ΠŸΡƒΡ‚ΠΈ поиска ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sys.path. Π’ Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ тСкущая дирСктория (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΠ΅ с основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… установлСн python. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ sys.path ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² любоС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ для вас мСсто (Π³Π»Π°Π²Π½ΠΎΠ΅, Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ sys.path).

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ?

МоТно. Однако Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ модуля Π΅Π³ΠΎ ΠΊΠΎΠ΄ выполняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π΅Ρ‘ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ. Π­Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ скрипт ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ __name__, которая ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΈ Ρ€Π°Π²Π½Π° «__main__», Ссли скрипт Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² качСствС Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ имя, Ссли ΠΎΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½. НапримСр, mymodule.py ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

def hello():
    print('Hello, world!')

def fib(n):
    a = b = 1
    for i in range(n - 2):
        a, b = b, a + b
    return b

if __name__ == "__main__":
    hello()
    for i in range(10):
        print(fib(i))

ΠœΠΎΠ΄ΡƒΠ»ΡŒ math | Python 3 для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ΠΈ Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

ΠœΠΎΠ΄ΡƒΠ»ΡŒ math – ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… Π² Python. Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прСдоставляСт ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с числами.

math.ceil(X) – ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ блиТайшСго большСго числа.

math.copysign(X, Y) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ число, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρƒ числа X, Π° Π·Π½Π°ΠΊ — ΠΊΠ°ΠΊ Ρƒ числа Y.

math.fabs(X) — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ X.

math.factorial(X) — Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» числа X.

math.floor(X) — ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π²Π½ΠΈΠ·.

math.fmod(X, Y) — остаток ΠΎΡ‚ дСлСния X Π½Π° Y.

math.frexp(X) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ мантиссу ΠΈ экспонСнту числа.

math.ldexp(X, I) — X * 2i. Ѐункция, обратная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ math.frexp().

math.fsum(ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ) — сумма всСх Ρ‡Π»Π΅Π½ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ встроСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sum(), Π½ΠΎ math.fsum() Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Π° для чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

math.isfinite(X) — являСтся Π»ΠΈ X числом.

math.isinf(X) — являСтся Π»ΠΈ X Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

math.isnan(X) — являСтся Π»ΠΈ X NaN (Not a Number — Π½Π΅ число).

math.modf(X) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈ Ρ†Π΅Π»ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ числа X. Оба числа ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π·Π½Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΈ X.

math.trunc(X) — усСкаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ X Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

math.exp(X) — eX.

math.expm1(X) — eX — 1. ΠŸΡ€ΠΈ X β†’ 0 Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‡Π΅ΠΌ math.exp(X)-1.

math.log(X, [base]) — Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ X ΠΏΠΎ основанию base. Если base Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, вычисляСтся Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ.

math.log1p(X) — Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ (1 + X). ΠŸΡ€ΠΈ X β†’ 0 Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‡Π΅ΠΌ math.log(1+X).

math.log10(X) — Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ X ΠΏΠΎ основанию 10.

math.log2(X) — Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ X ΠΏΠΎ основанию 2. НовоС Π² Python 3.3.

math.pow(X, Y) — XY.

math.sqrt(X) — ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· X.

math.acos(X) — арккосинус X. Π’ Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ….

math.asin(X) — арксинус X. Π’ Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ….

math.atan(X) — арктангСнс X. Π’ Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ….

math.atan2(Y, X) — арктангСнс Y/X. Π’ Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…. Π‘ ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Ρ‚ΠΎΡ‡ΠΊΠ° (X, Y).

math.cos(X) — косинус X (X указываСтся Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…).

math.sin(X) — синус X (X указываСтся Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…).

math.tan(X) — тангСнс X (X указываСтся Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…).

math.hypot(X, Y) — вычисляСт Π³ΠΈΠΏΠΎΡ‚Π΅Π½ΡƒΠ·Ρƒ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с ΠΊΠ°Ρ‚Π΅Ρ‚Π°ΠΌΠΈ X ΠΈ Y (math.sqrt(x * x + y * y)).

math.degrees(X) — ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π΄ΠΈΠ°Π½Ρ‹ Π² градусы.

math.radians(X) — ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ градусы Π² Ρ€Π°Π΄ΠΈΠ°Π½Ρ‹.

math.cosh(X) — вычисляСт гипСрболичСский косинус.

math.sinh(X) — вычисляСт гипСрболичСский синус.

math.tanh(X) — вычисляСт гипСрболичСский тангСнс.

math.acosh(X) — вычисляСт ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ гипСрболичСский косинус.

math.asinh(X) — вычисляСт ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ гипСрболичСский синус.

math.atanh(X) — вычисляСт ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ гипСрболичСский тангСнс.

math.erf(X) — функция ошибок.

math.erfc(X) — Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ функция ошибок (1 — math.erf(X)).

math.gamma(X) — Π³Π°ΠΌΠΌΠ°-функция X.

math.lgamma(X) — Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ Π³Π°ΠΌΠΌΠ°-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ X.

math.pi — pi = 3,1415926…

math.e — e = 2,718281…

ΠœΠΎΠ΄ΡƒΠ»ΡŒ числа Π² Python 3 β€” Ѐункция abs Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ math

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

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

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

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

  • Когда число большС 0. Если Π²Π·ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ β€” Π½Π΅ измСнится.
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ нуля Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ.
  • Π£ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ числа отбрасываСм Π·Π½Π°ΠΊ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π΅Π³ΠΎ Π½Π° -1.

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

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

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ‚Π΅ΠΎΡ€Π΅ΠΌΡ‹ ΠŸΠΈΡ„Π°Π³ΠΎΡ€Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ комплСксного числа это ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΈΠ· суммы ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ΠΌΠ½ΠΈΠΌΠΎΠΉ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ частСй.

ВычислСниС

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

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ abs.
  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fabs Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ math.
  • ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ написанной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

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

abs

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

a = -10
b = abs(a)
print(b)
print(type(b))

10
<class 'int'>

fabs

МоТно Ρ‚Π°ΠΊ ΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ fabs ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ math. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ from math import fabs.

from math import fabs
a = -10
b = fabs(a)
print(b)
print(type(b))

10.0
<class 'float'>

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ abs ΠΎΡ‚ fabs Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функция abs Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Ѐункция ΠΆΠ΅ fabs Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊ вСщСствСнному числу.

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

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

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

a = -10
b = a if a > 0 else -a
print(b)

10

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

def my_abs(a):
    return a if a > 0 else -a
print(my_abs(-3))

3

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

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

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

from math import fabs
a = -10-2j
b = fabs(a)
print(b)

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    b = fabs(a)
TypeError: can't convert complex to float

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

a = -10-2j
b = abs(a)
print(b)

10.19803902718557

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

from math import sqrt
def my_abs_complex(c):
    return sqrt(c.real**2 + c.imag**2)
a = -10-2j
b = my_abs_complex(a)
print(b)

10.198039027185569

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

ΠœΠΎΠ΄ΡƒΠ»ΠΈ — ΠžΡΠ½ΠΎΠ²Ρ‹ языка Python

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python содСрТат тысячи, дСсятки тысяч ΠΈ сотни тысяч строк ΠΊΠΎΠ΄Π° (Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°ΠΌΠΈ). Π’ Ρ‚Π°ΠΊΠΈΡ… условиях ΠΎΠ΄Π½ΠΈΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ ΠΎΠ±ΠΎΠΉΠ΄Ρ‘ΡˆΡŒΡΡ β€” Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° части. Для получСния доступа ΠΊ ΠΊΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…, Π² Python Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π˜Ρ‚Π°ΠΊ, Ρ„Π°ΠΉΠ» с ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Python называСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Имя модуля соотвСтствуСт ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, поэтому Ρ„Π°ΠΉΠ»Ρ‹ Π² Python принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² стилС «snake_case» (ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ ΠΈΡ€ΠΎΠ½ΠΈΡŽ: Python β€” ΠΏΠΈΡ‚ΠΎΠ½ β€” змСя β€” snake β€” snake_case). Одни ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС Π΄Ρ€ΡƒΠ³ΠΈΡ…, Ссли

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ эти Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструкции import.

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, Π² Python ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами:

  1. ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сам ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
  2. ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ опрСдСлСния ΠΈΠ· модуля
  3. ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё содСрТимоС модуля сразу

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

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ способа β€” ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ модуля Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π“Π»Π°Π²Π½ΠΎΠ΅ удобство упоминания модуля ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ: глядя Π½Π° ΠΊΠΎΠ΄, ΠΌΡ‹ сразу Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ пСрСмСнная ΠΈΠ»ΠΈ вызываСмая функция β€” это Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ модуля.

Бинтаксис ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°: import <имя_модуля (Π±Π΅Π· суффикса ".py")>

Всё просто: послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова import ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя модуля (Ρ„Π°ΠΉΠ»Π°). Но ΠΏΡ€ΠΈ этом суффикс .py Π² ΠΈΠΌΠ΅Π½ΠΈ Π½Π°Π΄ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, для модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ

my_module.py Π² инструкции ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° достаточно ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ my_module, Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π²ΠΈΠ΄ инструкции Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ: import my_module.

Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ (Ρ„Π°ΠΉΠ»Π΅) с ΠΈΠΌΠ΅Π½Π΅ΠΌ greeting.py ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ say_hi ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ name:

# file: greeting.py
def say_hi():
    print('Hi!')

name = 'Bob'

А Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ main.py сдСлаСм ΠΈΠΌΠΏΠΎΡ€Ρ‚ содСрТимого модуля greeting.py:

# file: main.py
import greeting  # Π·Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ".py" Π½Π΅ указываСтся!

print(greeting.name)  # => Bob
greeting.say_hi()     # => Hi!

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ модуля Π² Ρ‚Π°ΠΊΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ доступным ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это greeting. К содСрТимому ΠΆΠ΅ модуля ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ говорят, «Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ». ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ (greeting.name), Ρ‚Π°ΠΊ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ модуля (greeting.say_hi()).

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ

Бинтаксис ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°: from <имя_модуля (Π±Π΅Π· суффикса ".py")> import <список ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ>.

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

# file: main.py
from greeting import say_hi, name

print(name)  # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ
say_hi()     # Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ

Π—Π΄Π΅ΡΡŒ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова from ΡƒΠΊΠ°Π·Π°Π½ΠΎ имя модуля, Π° Π·Π°Ρ‚Π΅ΠΌ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова import β€” ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ· этого модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π² дальнСйшСм Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π° Π½Π΅ «Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ»).

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ импортирования модуля («ΠΈΠΌΠΏΠΎΡ€Ρ‚ всСго содСрТимого») ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ³Π»ΡƒΠ±ΠΈΠΌ наши познания Π² этой Ρ‚Π΅ΠΌΠ΅.


ΠžΡΡ‚Π°Π»ΠΈΡΡŒ вопросы? Π—Π°Π΄Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅Β»

Π’Π°ΠΌ отвСтят ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π₯СкслСта ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ студСнты.

Ошибки, слоТный ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π», вопросы >
Нашли ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ?

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ тСкст, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ctrl + enter ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π½Π°ΠΌ. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ ΠΌΡ‹ исправим ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠΌ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ.

Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ получаСтся ΠΈΠ»ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» каТСтся слоТным?

ЗаглянитС Π² Ρ€Π°Π·Π΄Π΅Π» Β«ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅Β»:

  • Π·Π°Π΄Π°ΠΉΡ‚Π΅ вопрос. Π’Ρ‹ быстрСС ΡΠΏΡ€Π°Π²ΠΈΡ‚Π΅ΡΡŒ с трудностями ΠΈ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Π΅Ρ‚Π΅ Π½Π°Π²Ρ‹ΠΊ постановки ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… вопросов, Ρ‡Ρ‚ΠΎ пригодится ΠΈ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ программистом;
  • расскаТитС ΠΎ своих впСчатлСниях. Если курс слишком слоТный, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΡ‚Π·Ρ‹Π² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅;
  • ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ вопросы Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° Π½ΠΈΡ…. Π­Ρ‚ΠΎ Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.
Об ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½Π° Π₯СкслСтС

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² python? Π Π°ΡΡˆΠ΅Ρ€Π΅Π½ΠΈΠ΅ .py ~ PythonRu

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ: Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Python

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

ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€” это Ρ„Π°ΠΉΠ», содСрТащий ΠΊΠΎΠ΄ python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ модулям python Π½Π° русском ΠΌΡ‹ собрали Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠœΠΎΠ΄ΡƒΠ»ΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ модуля

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ достаточно просто ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py:
Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ этот ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ mymodule.py

def greeting(name):
    print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, " + name)

ИспользованиС модуля

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import:

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ mymodule, ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ привСтствия:

import mymodule

mymodule.greeting("АндрСй")

Π’Ρ‹Π²ΠΎΠ΄:

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, АндрСй

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ΠΎ врСмя использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· модуля, синтаксис: module_name.function_name.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ описано, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всСх Ρ‚ΠΈΠΏΠΎΠ² (массивы, словари, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ‚. Π΄.).
Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΠΌ этот ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ» mymodule.py

person1 = {
"name": "Π’ΠΈΠΊΡ‚ΠΎΡ€",
"age": 36,
"country": "Россия"
}

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ mymodule, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ доступ ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ person1:

import mymodule

a = mymodule.person1["age"]
print(a)

Π’Ρ‹Π²ΠΎΠ΄:

36

Имя модуля

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» модуля, ΠΊΠ°ΠΊ Π²Π°ΠΌ нравится, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .py

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово as.

import mymodule as mx

a = mx.person1["age"]
print(a)

Π’Ρ‹Π²ΠΎΠ΄:

36

ВстроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π’ Python Π΅ΡΡ‚ΡŒ нСсколько встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

import platform

x = platform.system()
print(x)

Π’Ρ‹Π²ΠΎΠ΄:

Windows

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

БущСствуСт встроСнная функция для пСрСчислСния всСх ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…) Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Ѐункция dir().

import platform

x =  dir(platform)
print(x)

Π’Ρ‹Π²ΠΎΠ΄:

['DEV_NULL', '_UNIXCONFDIR', '_WIN32_CLIENT_RELEASES', '_WIN32_SERVER_RELEASES', 
 '__builtins__', '__cached__', '__copyright__', '__doc__', '__file__', 
 '__loader__', '__name__', '__package__', '__spec__', '__version__', 
 '_default_architecture', '_dist_try_harder', '_follow_symlinks', 
 '_ironpython26_sys_version_parser', '_ironpython_sys_version_parser', 
 '_java_getprop', '_libc_search', '_linux_distribution', '_lsb_release_version',
 '_mac_ver_xml', '_node', '_norm_version', '_parse_release_file', '_platform',
 '_platform_cache', '_pypy_sys_version_parser', '_release_filename', 
 '_release_version', '_supported_dists', '_sys_version', '_sys_version_cache',
 '_sys_version_parser', '_syscmd_file', '_syscmd_uname', '_syscmd_ver', 
 '_uname_cache', '_ver_output', 'architecture', 'collections', 'dist', 
 'java_ver', 'libc_ver', 'linux_distribution', 'mac_ver', 'machine', 'node',
 'os', 'platform', 'popen', 'processor', 'python_branch', 'python_build', 
 'python_compiler', 'python_implementation', 'python_revision', 'python_version', 
 'python_version_tuple', 're', 'release', 'subprocess', 'sys', 'system', 
 'system_alias', 'uname', 'uname_result', 'version', 'warnings', 'win32_ver']

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ dir() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° всСх модулях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создаСтС сами.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· модуля

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ частично, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово from

def greeting(name):
    print("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, " + name) 
person1  = {
"name": "Π’ΠΈΠΊΡ‚ΠΎΡ€",
"age": 36,
"country": "Россия"
}  

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ· модуля ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ person1:

from mymodule import person1 
print (person1["age"])

Π’Ρ‹Π²ΠΎΠ΄:

36

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ с использованиСм ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова from Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя модуля ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнтам. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: person1["age"], Π° Π½Π΅ mymodule.person1["age"]

Π”Π°Π»Π΅Π΅: Π”Π°Ρ‚Ρ‹ Π² Python

ΠœΠΎΠ΄ΡƒΠ»ΠΈ. ΠšΡƒΡ€Ρ «Python. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅»

ВстроСнныС Π² язык программирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ доступны сразу. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ, Π½Π΅ Π½Π°Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. Однако Π·Π° врСмя сущСствования любого популярного языка Π½Π° Π½Π΅ΠΌ Π±Ρ‹Π»ΠΎ написано ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ оказались вострСбованными мноТСством программистов ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях, Ρ‡Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ вСсь этот объСм ΠΊΠΎΠ΄Π° Π² сам язык Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ нСцСлСсообразно.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ доступа ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ возмоТностям языка, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ стало общСпринятой ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ содСрТит ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области. Π’Π°ΠΊ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ math языка Python содСрТатся матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random позволяСт Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ псСвдослучайныС числа, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ datetime содСрТатся классы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Π°ΠΌΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ sys прСдоставляСт доступ ΠΊ систСмным ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ Ρ‚. Π΄.

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

Для доступа ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ модуля, Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. ПослС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ «Π·Π½Π°Π΅Ρ‚» ΠΎ сущСствовании Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ позволяСт ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ import. ΠŸΡ€ΠΈ этом сущСствуСт нСсколько способов ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ math. Π˜Ρ‚Π°ΠΊ,

НичСго Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. Однако Π² глобальной области видимости появилось имя math. Если Π΄ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π²Ρ‹ упомянули Π±Ρ‹ имя math, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π±Ρ‹ ошибка NameError. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅

>>> math
<module 'math' (built-in)>

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ завСлся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ math, относящийся ΠΊ классу module.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, входящих Π² этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ встроСнной Π² Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ dir(), ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° имя модуля:

>>> dir(math)
['__doc__', '__loader__', '__name__', 
'__package__', '__spec__', 'acos', 'acosh',
'asin', 'asinh', 'atan', 'atan2', 'atanh', 
'ceil', 'copysign', 'cos', 'cosh',
'degrees', 'e', 'erf', 'erfc', 'exp', 
'expm1', 'fabs', 'factorial', 'floor',
'fmod', 'frexp', 'fsum', 'gamma', 'gcd',
 'hypot', 'inf', 'isclose', 'isfinite',
'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 
'log10', 'log1p', 'log2', 'modf',
'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 
'sqrt', 'tan', 'tanh', 'trunc']

ΠŸΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π° с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ подчСркиваниями. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ – ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ констант (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ своих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ), Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ· модуля, Π½Π°Π΄ΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ имя модуля, ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π΄Π°Π»Π΅Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, послС Ρ‡Π΅Π³ΠΎ Π² скобках ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ссли ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pow ΠΈΠ· math, Π½Π°Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, эта другая функция pow(), Π½Π΅ Ρ‚Π°, Ρ‡Ρ‚ΠΎ встроСна Π² сам язык. «ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ» функция pow() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅, Ссли Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ†Π΅Π»Ρ‹Π΅ числа:

Для обращСния ΠΊ константС скобки Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹:

>>> math.pi
3.141592653589793

Если ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π° ΠΈΠ»ΠΈ иная функция, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π½Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ встроСнной Π² язык Python Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ help():

>>> help(math.gcd)
Help on built-in function gcd in module math:

gcd(...)
    gcd(x, y) -> int
    greatest common divisor of x and y

Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ справки Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ q. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС сообщаСтся, Ρ‡Ρ‚ΠΎ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число, ΠΈ это наибольший ΠΎΠ±Ρ‰ΠΈΠΉ Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ для чисСл x ΠΈ y. ОписаниС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΈΡ… содСрТания Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° сайтС python.org.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° – это ΠΊΠΎΠ³Π΄Π° импортируСтся Π½Π΅ сам ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ.

>>> from math import gcd, sqrt, hypot

ΠŸΠ΅Ρ€Π΅Π²Π΅ΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ «ΠΈΠ· модуля math ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ gcd, sqrt ΠΈ hypot«.

Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΏΡ€ΠΈ ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π΅ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ имя модуля:

>>> gcd(100, 150)
50
>>> sqrt(16)
4.0
>>> hypot(3, 4)
5.0

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сразу всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· модуля:

Π˜ΠΌΠΏΠΎΡ€Ρ‚ Ρ‡Π΅Ρ€Π΅Π· from Π½Π΅ лишСн нСдостатка. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠ°ΠΊ имя ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ констант. Ошибки Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… окаТСтся «Π·Π°Ρ‚Π΅Ρ€Ρ‚ΠΎ»:

>>> pi = 3.14
>>> from math import pi
>>> pi
3.141592653589793

Π—Π΄Π΅ΡΡŒ исчСзаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3.14, присвоСнноС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ pi. Π­Ρ‚ΠΎ имя Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° число ΠΈΠ· модуля math. Если ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ присвоСниС значСния pi, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ всС Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚:

>>> from math import pi
>>> pi = 3.14
>>> pi
3.14

Π’ этой связи Π±ΠΎΠ»Π΅Π΅ опасСн ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² этом случаС ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

Однако ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈΠ· модуля Π½Π° ΠΊΠ°ΠΊΠΎΠ΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ:

>>> from math import pi as P
>>> P
3.141592653589793
>>> pi
3.14

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС константа pi ΠΈΠ· модуля импортируСтся ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ P. Бмысл ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² Π² сокращСнии ΠΈΠΌΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, Π° ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов Π² Π½ΠΈΡ… Π΅Ρ‰Π΅ Π΄Π»ΠΈΠ½Π½Π΅Π΅. Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ импортируСтся всСго ΠΏΠ°Ρ€Π° сущностСй, ΠΈ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π½Π΅ΠΉ часто, Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅:

>>> import calendar
>>> calendar.weekheader(2)
'Mo Tu We Th Fr Sa Su'

ΠΈ

>>> from calendar import weekheader as week
>>> week(3)
'Mon Tue Wed Thu Fri Sat Sun'

Π’ΠΎ всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ содСрТимого модуля Π² пространствС ΠΈΠΌΠ΅Π½ самого модуля ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ Π½ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· имя модуля, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ import имя_модуля, Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· имя_модуля.имя_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ().

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ€Π°Π±ΠΎΡ‚Π°. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнного модуля

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ Π½Π° Python всСгда ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² пользованиС всСму ΠΌΠΈΡ€Ρƒ. Π’ качСствС Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΊΠΈ создадим ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с функциями для вычислСния ΠΏΠ»ΠΎΡ‰Π°Π΄Π΅ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΈ ΠΊΡ€ΡƒΠ³Π°:

from math import pi, pow
Β 
def rectangle(a, b):
    return round(a * b, 2)
Β 
def triangle(a, h):
    return round(0.5 * a * h, 2)
Β 
def circle(r):
    return round(pi * pow(r, 2), 2) 

Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· модуля math.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» square.py. Однако ΠΊΡƒΠ΄Π° ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ сам Ρ„Π°ΠΉΠ»?

Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠŸΠΈΡ‚ΠΎΠ½Π° встрСчаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Ρ‚ΠΎ просматриваСт Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°-модуля ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ. Π˜Ρ… ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ содСрТимому sys.path:

>>> import sys
>>> sys.path
['', '/usr/lib/python35.zip', 
'/usr/lib/python3.5', 
'/usr/lib/python3.5/plat-x86_64-linux-gnu',
'/usr/lib/python3.5/lib-dynload', 
'/home/pl/.local/lib/python3.5/site-packages',
'/usr/local/lib/python3.5/dist-packages', 
'/usr/lib/python3/dist-packages']

Π­Ρ‚ΠΎ список адрСсов Π² Linux. Π’ Windows ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт – пустая строка, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎ мСсто, Π³Π΄Π΅ сохранСна сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Если Π²Ρ‹ сохранитС Ρ„Π°ΠΉΠ»-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Ρ„Π°ΠΉΠ»-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° Π½Π°ΠΉΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² спискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π’ΠΎΠ³Π΄Π° ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ доступСн для всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Python, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² sys.path свой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Однако Π² этом случаС Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ измСнСния значСния sys.path, Π»ΠΈΠ±ΠΎ Π½Π°Π΄ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π»ΡƒΡ‡ΡˆΠ΅ Ρ‚Π°ΠΊ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ИсполнСниС модуля ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ скрипта, Π° Ρ‚Π°ΠΊΠΆΠ΅ созданиС строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ встроСнная Π² Python функция help(), Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² курсС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ€ΠΎΠΊΠΈ Π² android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ pdf-вСрсии курса

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ import Π² Python? Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ модуля

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

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«thisΒ»

Π’ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²ΠΎΡ‚ этот:

Запустив Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² своСм ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Π΄ΡƒΡ…Π΅:

The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren’t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one— and preferably only one —obvious way to do it. Although that way may not be obvious at first unless you’re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it’s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea — let’s do more of those!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

The Zen of Python, by Tim Peters

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren’t special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one— and preferably only one —obvious way to do it.

Although that way may not be obvious at first unless you’re Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it’s a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea — let’s do more of those!

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΠ΅ΠΌ, Π²Ρ‹ нашли Β«ΠΏΠ°ΡΡ…Π°Π»ΡŒΠ½ΠΎΠ΅ яйцо» Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅, Ρ‚Π°ΠΊΠΆΠ΅ извСстноС ΠΊΠ°ΠΊ Β«Π”Π·Π΅Π½Β». Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… частСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½. Π‘Π°ΠΌ ΠΏΠΎ сСбС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ this Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ особСнного, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ способ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ, Ρ‡Π΅ΠΌ ΠΌΡ‹ смоТСм Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math:

import math print(math.sqrt(4)) # 2.0

import math

Β 

print(math.sqrt(4)) # 2.0

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math ΠΈ сдСлали Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅. ΠœΡ‹ Π²Ρ‹Π·Π²Π°Π»ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ модуля – sqrt (Ρ‚.Π΅. square root – ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ). Для Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ модуля, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис: module_name.method_name(Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚). Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ нашли ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΎΡ‚ 4. Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ math Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ косинуса, Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π», Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΡ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ·Ρ‹Π²Π°Ρ‚ΡŒ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ sqrt. ЕдинствСнноС, Π² Ρ‡Π΅ΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ – ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ большСС количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ способ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

ИспользованиС from Π² ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅

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

from math import sqrt print( sqrt(16) ) # 4.0

from math import sqrt

Β 

print( sqrt(16) ) # 4.0

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ читаСтся: функция sqrt импортируСтся ΠΈΠ· модуля math. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ это ΠΈΠ½Π°Ρ‡Π΅. ΠœΡ‹ использовали ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово from для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sqrt ΠΈΠ· модуля math. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· модуля math:

from math import pi, sqrt

from math import pi, sqrt

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊ sqrt Ρ‚Π°ΠΊ ΠΈ pi. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ pi, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π΅ функция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅, Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°.

Π—Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π΅ΡˆΠ΅Π²Ρ‹Ρ… подписчиков Π² Π³Ρ€ΡƒΠΏΠΏΡƒ Π’Πš с качСствСнными страницами ΠΌΠΎΠΆΠ½ΠΎ Π½Π° сСрвисС https://doctorsmm.com/. Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° рСсурса ΠΈ скорости Π΅Π³ΠΎ поступлСния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ практичСски Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ услугу Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π²Π½ΡƒΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΎΠ²Ρ‹Π΅ скидки ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ. НС упуститС своС Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅!

Когда Π²Ρ‹ выполняСтС ΠΈΠΌΠΏΠΎΡ€Ρ‚, Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ, функциями, Π΄Π°ΠΆΠ΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ. Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ всё!

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

Π˜ΠΌΠΏΠΎΡ€Ρ‚ всСго

Π’ ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π·Π° Ρ€Π°Π·. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡΠΎΡ€ΠΈΡ‚ΡŒ вашС пространство ΠΈΠΌΠ΅Π½. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ – это мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находятся всС ваши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΏΠΎΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρƒ вас Π΅ΡΡ‚ΡŒ своя пСрСмСнная ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ sqrt:

from math import sqrt sqrt = 5

from math import sqrt

sqrt = 5

Волько Ρ‡Ρ‚ΠΎ Π²Ρ‹ сдСлали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sqrt ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ 5. Π­Ρ‚ΠΎ называСтся Π·Π°Ρ‚Π΅Π½Π΅Π½ΠΈΠ΅ΠΌ (shadowing). Π­Ρ‚ΠΎ особСнно Ρ…ΠΈΡ‚Ρ€Ρ‹ΠΉ способ упрощСния своСй ΠΆΠΈΠ·Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ выполняСтС ΠΈΠΌΠΏΠΎΡ€Ρ‚ всСго ΠΈΠ· модуля. Π”Π°Π²Π°ΠΉΡ‚Π΅ взглянСм:

from math import * sqrt = 5 sqrt(16)

from math import *

Β 

sqrt = 5

sqrt(16)

Π‘ΡƒΠ΄Π΅Ρ‚ ошибка!

Traceback (most recent call last): File β€œ<string>”, line 1, in <fragment> TypeError: β€˜int’ object is not callable

Traceback (most recent call last):

File β€œ<string>”, line 1, in <fragment>

TypeError: β€˜int’ object is not callable

Для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСго, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… частСй модуля, ΠΌΡ‹ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π·Π½Π°ΠΊΒ *Β , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС. Π’ случаС Ссли ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ находится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ math, ΠΌΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Когда ΠΌΡ‹ пытаСмся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sqrt послС присвоСния Π΅Ρ‘ Ρ†Π΅Π»ΠΎΠΌΡƒ числу, ΠΌΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° большС Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ способов для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Но Π΅ΡΡ‚ΡŒ ΠΈ нСсколько ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π°. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… модулях ΠΈΠΌΠΏΠΎΡ€Ρ‚ прСдусмотрСн Π·Π°Ρ€Π°Π½Π΅Π΅, это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ благодаря ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ β€œ*”. Одним ΠΈΠ· ярких ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² являСтся Tkinter – Π½Π°Π±ΠΎΡ€ инструмСнтов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ с ΠŸΠ°ΠΉΡ‚ΠΎΠ½ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ интСрфСйсы Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ столС. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Tkinter Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ всС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования стрСмится ΠΊ Π½ΡƒΠ»ΡŽ.

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ всС ΠΎΠ± ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½Π΅. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ дСсятки ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠŸΠ°ΠΉΡ‚ΠΎΠ½ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для поднятия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для запросов ОБ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· рССстра Windows, Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ вСдСния ΠΆΡƒΡ€Π½Π°Π»Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· XML ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅, ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Являюсь администратором Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ языков программирования Python, Golang ΠΈ Kotlin. Π’ составС нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΡ‹ занимаСмся популяризациСй языков программирования Π½Π° Ρ€ΡƒΡΡΠΊΠΎΡΠ·Ρ‹Ρ‡Π½ΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ статСй Π±Ρ‹Π»Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π½Π° русский язык ΠΈ распространяСтся бСсплатно.

E-mail: [email protected]

ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
Universitatea Tehnică a Moldovei (utm.md)

  • 2014 β€” 2018 ВСхничСский УнивСрситСт ΠœΠΎΠ»Π΄ΠΎΠ²Ρ‹, ИВ-Π˜Π½ΠΆΠ΅Π½Π΅Ρ€. Π’Π΅ΠΌΠ° Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ «Автоматизация ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π»ΡŽΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ тСхничСский Π°Π½Π°Π»ΠΈΠ·Β»
  • 2018 β€” 2020 ВСхничСский УнивСрситСт ΠœΠΎΠ»Π΄ΠΎΠ²Ρ‹, ΠœΠ°Π³ΠΈΡΡ‚Ρ€, ΠœΠ°Π³ΠΈΡΡ‚Π΅Ρ€ΡΠΊΠ°Ρ диссСртация Β«Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² кибСрпространствС ΠΏΠΎ Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ Π»ΠΈΡ†Π°Β»

6. ΠœΠΎΠ΄ΡƒΠ»ΠΈ — докумСнтация Python 3.9.6

 >>> import builtins
>>> dir (встроСнныС)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',
 BlockingIOError, BrokenPipeError, BufferError, BytesWarning,
 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError',
 ConnectionRefusedError, ConnectionResetError, DeprecationWarning,
 EOFError, Ellipsis, EnvironmentError, Exception, False,
 FileExistsError, FileNotFoundError, FloatingPointError,
 FutureWarning, GeneratorExit, IOError, ImportError,
 ImportWarning, IndentationError, IndexError, InterruptedError,
 IsADirectoryError, KeyError, KeyboardInterrupt, LookupError,
 MemoryError, NameError, None, NotADirectoryError, NotImplemented,
 NotImplementedError, OSError, OverflowError,
 PendingDeprecationWarning, PermissionError, ProcessLookupError,
 ReferenceError, ResourceWarning, RuntimeError, RuntimeWarning,
 StopIteration, SyntaxError, SyntaxWarning, SystemError,
 SystemExit, TabError, TimeoutError, True, TypeError,
 UnboundLocalError, UnicodeDecodeError, UnicodeEncodeError,
 UnicodeError, UnicodeTranslateError, UnicodeWarning, UserWarning,
 'ValueError', 'ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅', 'ZeroDivisionError', '_', '__build_class__',
 '__debug__', '__doc__', '__import__', '__name__', '__package__', 'abs',
 all, any, ascii, bin, bool, bytearray, bytes, callable,
 chr, classmethod, compile, complex, copyright, credits,
 delattr, dict, dir, divmod, enumerate, eval, exec, exit,
 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr',
 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass',
 iter, len, лицСнзия, list, locals, map, max, memoryview,
 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'свойство',
 'quit', 'range', 'repr', 'reverse', 'round', 'set', 'setattr', 'срСз',
 'sorted', 'staticmethod', 'str', 'sum', 'super', 'ΠΊΠΎΡ€Ρ‚Π΅ΠΆ', 'type', 'vars',
 'zip']
 

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


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

Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ — это Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ΄Π°.

Π€Π°ΠΉΠ», содСрТащий Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.


Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

Для создания модуля просто сохранитС Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ mymodule.py

def привСтствиС (имя):
print («ΠŸΡ€ΠΈΠ²Π΅Ρ‚,» + имя)

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ mymodule ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ привСтствия:

import mymodule

mymodule.привСтствиС (Β«Π”ΠΆΠΎΠ½Π°Ρ‚Π°Π½Β»)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Β»

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· модуля ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ синтаксис: имя_модуля.имя_Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ .


ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ описанныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ всС Ρ‚ΠΈΠΏΡ‹ (массивы, словари, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ‚. Π΄.):

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² Ρ„Π°ΠΉΠ»Π΅ mymodule.py

person1 = {
«name»: «Π”ΠΆΠΎΠ½»,
«Π²ΠΎΠ·Ρ€Π°ΡΡ‚»: 36,
«ΡΡ‚Ρ€Π°Π½Π°»: «ΠΠΎΡ€Π²Π΅Π³ΠΈΡ»
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ mymodule ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ person1:

import mymodule

a = mymodule.person1 [«Π²ΠΎΠ·Ρ€Π°ΡΡ‚»]
print (a)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Β»

ИмСнованиС модуля

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» модуля ΠΊΠ°ΠΊ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π½ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° .py

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

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ псСвдоним для mymodule с ΠΈΠΌΠ΅Π½Π΅ΠΌ mx :

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ mymodule ΠΊΠ°ΠΊ mx

a = mx.person1 [«age»]
print (a)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Β»

ВстроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π’ Python Π΅ΡΡ‚ΡŒ нСсколько встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² любоС врСмя.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈ использованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠœΠΎΠ΄ΡƒΠ»ΡŒ :

ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

x = platform.system ()
print (x)

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

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

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ встроСнная функция для Π²Ρ‹Π²ΠΎΠ΄Π° списка всСх ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½Π°) Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Ѐункция dir () :

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹:

импортная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°

x = dir (platform)
print (x)

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ сам »

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ѐункция dir () ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° всСх ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ создаСтС сами.


Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· модуля

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈΠ· модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΠ· .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠœΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ mymodule ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ:

def привСтствиС (имя):
print («ΠŸΡ€ΠΈΠ²Π΅Ρ‚,» + имя)

person1 = {
«name»: «Π”ΠΆΠΎΠ½»,
«Π²ΠΎΠ·Ρ€Π°ΡΡ‚»: 36,
«ΡΡ‚Ρ€Π°Π½Π°»: «НорвСгия»
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· модуля Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ person1:

from mymodule import person1

print (person1 [«Π²ΠΎΠ·Ρ€Π°ΡΡ‚»])

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска Β»

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ с использованиСм ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ имя модуля ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнтам Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅.ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ1 ["возраст"] , Π½Π΅ mymodule.person1 ["возраст"]




ΠΠ°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ настраиваСмыС ΠΈ встроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

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

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

относятся ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, содСрТащСму ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ опрСдСлСния Python.

Π€Π°ΠΉΠ», содСрТащий ΠΊΠΎΠ΄ Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: example.py , называСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, ΠΈ Π΅Π³ΠΎ имя модуля Π±ΡƒΠ΄Π΅Ρ‚ example .

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° нСбольшиС управляСмыС ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°.

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

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΈ сохранитС Π΅Π³ΠΎ ΠΊΠ°ΠΊ example.py .

  # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ модуля Python

def add (a, b):
   "" "Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° добавляСт Π΄Π²Π°
   числа ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ "" "

   Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = a + b
   Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚  

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ add () Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ example .Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° числа ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… сумму.


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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ опрСдСлСния Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π² Python.

Для этого ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово import . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ , ΠΏΡ€ΠΈΠΌΠ΅Ρ€ , ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Python.

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

ΠŸΡ€ΠΈ этом ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ , Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов.Он Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΡƒΠ΄Π° имя модуля , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя модуля, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‡ΠΊΡƒ . ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€. НапримСр:

  >>> example.add (4,5.5)
9,5  

Python ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ»Π½Ρ‹ΠΌ списком стандартных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΡ… использования. Π­Ρ‚ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Lib Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ Π²Ρ‹ установили Python.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.

Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ способы ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Они пСрСчислСны Π½ΠΈΠΆΠ΅ ..


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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ опрСдСлСниям Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  # ΠΏΡ€ΠΈΠΌΠ΅Ρ€ инструкции ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
# для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ стандартного модуля

импортная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ°
print (Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа ΠΏΠΈΒ», math.pi)  

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚:

  Число Пи Ρ€Π°Π²Π½ΠΎ 3.141592653589793  

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² Π΅Π³ΠΎ

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ ΠΊΠ°ΠΊ m
print (Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа ΠΏΠΈΒ», m.pi)  

ΠœΡ‹ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math Π² m . Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ Π½Π°ΠΌ врСмя Π½Π° Π½Π°Π±ΠΎΡ€ тСкста.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ имя math Π½Π΅ распознаСтся Π² нашСй области. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, math.pi нСдСйствитСлСн, Π° m.pi — ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ рСализация.


Python from … ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· модуля, Π½Π΅ импортируя ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΈ ΠΈΠ· матСматичСского модуля

ΠΈΠ· матСматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Пи
print (Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа Пи Ρ€Π°Π²Π½ΠΎΒ», Пи)  

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ pi ΠΈΠ· модуля math .

Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΡ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  >>> ΠΈΠ· матСматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pi, e
>>> ΠΏΠΈ
3.141592653589793
>>> e
2,718281828459045  

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π°

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π° (опрСдСлСния) ΠΈΠ· модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

  # ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π° ΠΈΠ· стандартного модуля math

ΠΈΠ· матСматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° *
print (Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ числа Пи Ρ€Π°Π²Π½ΠΎΒ», Пи)  

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ всС опрСдСлСния ΠΈΠ· матСматичСского модуля. Бюда входят всС ΠΈΠΌΠ΅Π½Π°, Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ Π² нашСй области видимости, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с подчСркивания (частныС опрСдСлСния).

Π˜ΠΌΠΏΠΎΡ€Ρ‚ всСго, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ символом Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ (*), Π½Π΅ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ программирования. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ затрудняСт Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ нашСго ΠΊΠΎΠ΄Π°.


ΠŸΡƒΡ‚ΡŒ поиска модуля Python

ΠŸΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля Python просматриваСт нСсколько мСст. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сначала ΠΈΡ‰Π΅Ρ‚ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Π—Π°Ρ‚Π΅ΠΌ (Ссли встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½) Python просматриваСт список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² sys.path . Поиск вСдСтся Π² Ρ‚Π°ΠΊΠΎΠΌ порядкС.

  • Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.
  • PYTHONPATH (пСрСмСнная срСды со списком ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²).
  • Зависящий ΠΎΡ‚ установки ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
>>> import sys
>>> sys.path
['',
'C: \ Python33 \ Lib \ idlelib',
'C: \ Windows \ system32 \ python33.zip',
'C: \ Python33 \ DLLs',
'C: \ Python33 \ lib',
'C: \\ Python33',
'C: \ Python33 \ lib \ site-packages'] 

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ этот список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ наш собствСнный ΠΏΡƒΡ‚ΡŒ.


ΠŸΠ΅Ρ€Π΅Π·Π°Ρ€ΡΠ΄ΠΊΠ° модуля

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° сСанс. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π²Π΅Ρ‰ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивными. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ my_module .

  # Π­Ρ‚ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ эффСкт
# мноТСствСнный ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

print (Β«Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Β»)  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ эффСкт ΠΎΡ‚ мноТСствСнного ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ my_module
Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ my_module
>>> import my_module  

ΠœΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наш ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли наш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ измСнился Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ. Один ΠΈΠ· способов ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это — ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Но это ΠΌΠ°Π»ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚.

Python прСдоставляСт Π±ΠΎΠ»Π΅Π΅ эффСктивный способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ reload () Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля imp для ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами:

  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏ
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ my_module
Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ my_module
>>> ΠΈΠΌΠΏ.ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ (my_module)
Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π±Ρ‹Π» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½
<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'my_module' ΠΈΠ· '. \\ my_module.py'>  

ВстроСнная функция dir ()

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dir () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля.

НапримСр, ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ add () Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ example , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ нас Π±Ρ‹Π» Π² Π½Π°Ρ‡Π°Π»Π΅.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dir Π² , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  >>> dir (ΠΏΡ€ΠΈΠΌΠ΅Ρ€)
['__builtins__',
'__cached__',
'__doc__',
'__Ρ„Π°ΠΉΠ»__',
'__initializing__',
'__loader__',
'__Π½Π°Π·Π²Π°Π½ΠΈΠ΅__',
'__ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°__',
'Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ']  

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ отсортированный список ΠΈΠΌΠ΅Π½ (вмСстС с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ).ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с подчСркивания, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Python ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, связанными с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ (Π½Π΅ опрСдСляСмыми ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ).

НапримСр, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ __name__ содСрТит имя модуля.

  >>> ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
>>> ΠΏΡ€ΠΈΠΌΠ΅Ρ€ .__ имя__
'ΠΏΡ€ΠΈΠΌΠ΅Ρ€'  

ВсС ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² нашСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ пространствС ΠΈΠΌΠ΅Π½, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir () Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

  >>> Π° = 1
>>> b = "ΠΏΡ€ΠΈΠ²Π΅Ρ‚"
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ
>>> dir ()
['__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter']  
ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python

— Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ — Настоящий Python

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Python , Π΄Π²Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ .

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ относится ΠΊ процСссу раздСлСния большой, Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ программирования Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅, Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ управляСмыС ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ . Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ собраны вмСстС, ΠΊΠ°ΠΊ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, для создания Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ прилоТСния.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π² большом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π°Π΅Ρ‚ нСсколько прСимущСств:

  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°: ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° всСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ фокусируСтся Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой части ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ мСлкая проблСмная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок.

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

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования: Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, опрСдСлСнная Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ использована (Ρ‡Π΅Ρ€Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ интСрфСйс) Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ частями прилоТСния. Π­Ρ‚ΠΎ избавляСт ΠΎΡ‚ нСобходимости Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

  • ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия: ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ , Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.(Один ΠΈΠ· постулатов Π΄Π·Π΅Π½ Python — ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ — отличная идСя — Π΄Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм ΠΈΡ… большС! )

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ , ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ — это конструкции Π² Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄Π°.

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

Python: ΠΎΠ±Π·ΠΎΡ€

На самом Π΄Π΅Π»Π΅ сущСствуСт Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… способа ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Python:

  1. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π° самом Python.
  2. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π° C ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ динамичСски Π²ΠΎ врСмя выполнСния, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ re ( рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ).
  3. ВстроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ содСрТится Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ itertools .

Доступ ΠΊ содСрТимому модуля осущСствляСтся ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²ΠΎ всСх Ρ‚Ρ€Π΅Ρ… случаях: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import .

Π—Π΄Π΅ΡΡŒ основноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ модулям, написанным Π½Π° Python. Π‘Π°ΠΌΠΎΠ΅ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π² модулях, написанных Π½Π° Python, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ просто ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ. ВсС, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ», содСрТащий Π·Π°ΠΊΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Python, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρƒ имя с .py Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ ΠΈ всС! Никакого ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса ΠΈΠ»ΠΈ колдовства Π½Π΅ трСбуСтся.

НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ mod.py , содСрТащий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠΌΠΎΠ΄.py

  s = "Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ."
Π° = [100, 200, 300]

def foo (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f'arg = {arg} ')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

НСсколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² mod.py :

  • с (строка)
  • Π° (список)
  • foo () (функция)
  • Foo (Π° класс)

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΌΠΎΠ΄.py находится Π² подходящСм мСстС, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ вскорС ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ большС, ΠΊ этим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, Ссли ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
>>> ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΌΠΎΠ΄.)
Если это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
>>> mod.a
[100, 200, 300]
>>> mod.foo (['quux', 'corge', 'grault'])
arg = ['quux', 'corge', 'grault']
>>> x = mod.Foo ()
>>> Ρ…
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ mod.Foo ΠΏΠΎ адрСсу 0x03C181F0>
  

ΠŸΡƒΡ‚ΡŒ поиска модуля

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Python выполняСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ выполняСт Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import , ΠΎΠ½ ΠΈΡ‰Π΅Ρ‚ ΠΌΠΎΠ΄ .py Π² спискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², собранных ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… источников:

  • ΠšΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сцСнарий, ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ , Ссли ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ запускаСтся Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅
  • Бписок ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², содСрТащихся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PYTHONPATH , Ссли ΠΎΠ½Π° установлСна. (Π€ΠΎΡ€ΠΌΠ°Ρ‚ PYTHONPATH зависит ΠΎΡ‚ ОБ, Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PATH .)
  • Зависящий ΠΎΡ‚ установки список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², настроСнных Π²ΠΎ врСмя установки Python

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ поиска доступСн Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Python sys.ΠΏΡƒΡ‚ΡŒ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ получаСтся ΠΈΠ· модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ sys :

>>>
  >>> import sys
>>> sys.path
['', 'C: \\ Users \\ john \\ Documents \\ Python \\ doc', 'C: \\ Python36 \\ Lib \\ idlelib',
'C: \ Python36 \ python36.zip', 'C: \ Python36 \ DLLs', 'C: \ Python36 \ lib',
'C: \ Python36', 'C: \ Python36 \ lib \ site-packages']
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ΠΎΡ‡Π½ΠΎΠ΅ содСрТимоС sys.path зависит ΠΎΡ‚ установки. Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΠΎΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π°Ρ‡Π΅ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π°ΠΉΠ΄Π΅Π½, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

  • ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ mod.py Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π³Π΄Π΅ располоТСн Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сцСнарий, ΠΈΠ»ΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ , Ссли ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ
  • Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PYTHONPATH , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° содСрТала ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится mod.py , ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°
    • Или: ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ mod.py Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΡƒΠΆΠ΅ содСрТащихся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PYTHONPATH
  • ΠŸΠΎΡΡ‚Π°Π²ΠΈΠ» ΠΌΠΎΠ΄.py Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· зависящих ΠΎΡ‚ установки ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ доступ для записи, Π² зависимости ΠΎΡ‚ ОБ

На самом Π΄Π΅Π»Π΅ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» модуля Π² любой ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ sys.path Π²ΠΎ врСмя выполнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ содСрТал этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. НапримСр, Π² этом случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ mod.py Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ C: \ Users \ john , Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструкции:

>>>
  >>> sys.path.append (r'C: \ Users \ john ')
>>> sys.path
['', 'C: \\ Users \\ john \\ Documents \\ Python \\ doc', 'C: \\ Python36 \\ Lib \\ idlelib',
'C: \ Python36 \ python36.zip', 'C: \ Python36 \ DLLs', 'C: \ Python36 \ lib',
'C: \\ Python36', 'C: \\ Python36 \\ lib \\ site-packages', 'C: \\ Users \\ john']
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π°
  

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±Ρ‹Π» ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ мСстополоТСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° __file__ модуля:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
>>> ΠΌΠΎΠ΄.__Ρ„Π°ΠΉΠ»__
'C: \\ Users \\ john \\ mod.py'

>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ρ€Π΅
>>> re .__ file__
'C: \ Python36 \ lib \ re.py'
  

Π§Π°ΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° __file__ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² sys.path .

Π˜ΠΌΠΏΠΎΡ€Ρ‚

ΠžΡ‚Ρ‡Π΅Ρ‚

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ модуля становится доступным для Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import . ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅.

ΠΈΠΌΠΏΠΎΡ€Ρ‚ <имя_модуля>

Бамая простая Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π²Ρ‹ΡˆΠ΅:

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

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ , ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ частных символов модуля .

Из Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ прСфикса <имя_модуля> Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.

ПослС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import mod помСщаСтся Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, mod ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² локальном контСкстС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
>>> ΠΌΠΎΠ΄
<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'mod' ΠΈΠ· 'C: \\ Users \\ john \\ Documents \\ Python \\ doc \\ mod.py'>
  

Но s ΠΈ foo ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ частных символов модуля ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ смысла Π² локальном контСкстС:

>>>
  >>> с
NameError: имя 's' Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ
>>> foo ('quux')
NameError: имя 'foo' Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ
  

Для доступа Π² локальном контСкстС ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ прСфикс mod :

>>>
  >>> ΠΌΠΎΠ΄.s
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΒ».
>>> mod.foo ('quux')
arg = quux
  

Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ нСсколько ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… запятыми:

  import  [,  ...]
  

ΠΈΠ· <имя_модуля> ΠΈΠΌΠΏΠΎΡ€Ρ‚ <имя (Π°)>

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import позволяСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· модуля нСпосрСдствСнно Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π° :

  ΠΈΠ· <имя_модуля> ΠΈΠΌΠΏΠΎΡ€Ρ‚ <имя (Π°)>
  

ПослС выполнСния Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π² срСдС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π° Π±Π΅Π· прСфикса :

>>>
  >>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄Π° s, foo
>>> с
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.'
>>> foo ('quux')
arg = quux

>>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄Π° Foo
>>> x = Foo ()
>>> Ρ…
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ mod.Foo ΠΏΠΎ адрСсу 0x02E3AD50>
  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта Ρ„ΠΎΡ€ΠΌΠ° import ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² нСпосрСдствСнно Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°, Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны :

>>>
  >>> a = ['foo', 'bar', 'baz']
>>> Π°
['Ρ„Ρƒ', 'Π±Π°Ρ€', 'Π±Π°Π·']

>>> ΠΈΠ· ΠΌΠΎΠ΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
>>> Π°
[100, 200, 300]
  

МоТно Π΄Π°ΠΆΠ΅ Π±Π΅Π· Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠ· модуля ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°Ρ…ΠΎΠΌ:

  ΠΈΠ·  import *
  

Π­Ρ‚ΠΎ помСстит ΠΈΠΌΠ΅Π½Π° всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с символа подчСркивания ( _ ).

НапримСр:

>>>
  >>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄Π° *
>>> с
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΒ».
>>> Π°
[100, 200, 300]
>>> Ρ„Ρƒ
<функция foo Π² 0x03B449C0>
>>> Π€Ρƒ
<класс 'mod.Foo'>
  

Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π² кодСксС ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠ³ΠΎ производства. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ опасно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π° Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов Π² массовом порядкС . Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΡ… всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ шанс случайно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя.Однако этот синтаксис ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ просто Π²ΠΎΠ·ΠΈΡ‚Π΅ΡΡŒ с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ для Ρ†Π΅Π»Π΅ΠΉ тСстирования ΠΈΠ»ΠΈ обнаруТСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ быстро Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ доступ ΠΊΠΎ всСму, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π±Π΅Π· особого Π½Π°Π±ΠΎΡ€Π° тСкста.

ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ ввСсти ΠΈΡ… Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов с Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ:

  ΠΈΠ·  ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ  ΠΊΠ°ΠΊ  [,  ΠΊΠ°ΠΊ …]
  

Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° нСпосрСдствСнно Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов, Π½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² с Ρ€Π°Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ:

>>>
  >>> s = 'foo'
>>> a = ['foo', 'bar', 'baz']

>>> from mod import s as string, a as alist
>>> с
'Ρ„Ρƒ'
>>> строка
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.'
>>> Π°
['Ρ„Ρƒ', 'Π±Π°Ρ€', 'Π±Π°Π·']
>>> алист
[100, 200, 300]
  

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ:

  ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ  ΠΊΠ°ΠΊ 
  
>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ ΠΊΠ°ΠΊ my_module
>>> my_module.a
[100, 200, 300]
>>> my_module.foo ('qux')
arg = qux
  

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ модуля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.Π’ этом случаС import Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΠΊΠ° функция Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° :

>>>
  >>> def bar ():
... ΠΈΠ· ΠΌΠΎΠ΄Π° import foo
... Ρ„Ρƒ ('corge')
...

>>> Π±Π°Ρ€ ()
arg = corge
  

Однако Python 3 Π½Π΅ допускаСт Π½Π΅Ρ€Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²Ρ‹ΠΉ синтаксис import * ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

>>>
  >>> def bar ():
... ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄Π° *
...
SyntaxError: import * Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля
  

НаконСц, для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ except ImportError :

>>>
  >>> ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:
... # ΠΠ΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
... import baz
... ΠΊΡ€ΠΎΠΌΠ΅ ImportError:
... print ('ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½')
...

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
  
>>>
  >>> ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:
... # Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚
... ΠΈΠ· ΠΌΠΎΠ΄Π° import baz
... ΠΊΡ€ΠΎΠΌΠ΅ ImportError:
... print ('ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅')
...

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅
  

ДирСктория

() Ѐункция

ВстроСнная функция dir () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π² пространствС ΠΈΠΌΠ΅Π½.Π‘Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΎΠ½ создаСт отсортированный ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ список ΠΈΠΌΠ΅Π½ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ локальной Ρ‚Π°Π±Π»ΠΈΡ†Π΅ символов :

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> qux = [1, 2, 3, 4, 5]
>>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'qux']

>>> класс Bar ():
...     ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
...
>>> x = Π‘Π°Ρ€ ()
>>> dir ()
['Π‘Π°Ρ€', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'qux', 'x']
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² dir () Π²Ρ‹ΡˆΠ΅ пСрСчисляСт нСсколько ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ автоматичСски ΠΈ ΡƒΠΆΠ΅ находятся Π² пространствС ΠΈΠΌΠ΅Π½ ΠΏΡ€ΠΈ запускС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°.По ΠΌΠ΅Ρ€Π΅ опрСдСлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠΌΠ΅Π½ ( qux , Bar , x ) ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²Π°Ρ… dir () .

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π² пространство ΠΈΠΌΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°:

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π°
>>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'mod']
>>> ΠΌΠΎΠ΄.s
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΒ».
>>> mod.foo ([1, 2, 3])
arg = [1, 2, 3]

>>> ΠΈΠ· ΠΌΠΎΠ΄Π° import a, Foo
>>> dir ()
['Foo', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'a', 'mod']
>>> Π°
[100, 200, 300]
>>> x = Foo ()
>>> Ρ…
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ mod.Foo ΠΏΠΎ адрСсу 0x002EAD50>

>>> ΠΈΠ· ΠΌΠΎΠ΄Π° import s ΠΊΠ°ΠΊ строка
>>> dir ()
['Foo', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'a', 'mod', 'строка', 'x']
>>> строка
«Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.'
  

Если ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ модуля, dir () пСрСчисляСт ΠΈΠΌΠ΅Π½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
>>> dir (ΠΌΠΎΠ΄)
['Foo', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__spec__', 'a', 'foo', 's']
  
>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']
>>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄Π° *
>>> dir ()
['Foo', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'a', 'foo', 's']
  

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ модуля ΠΊΠ°ΠΊ скрипта

Π›ΡŽΠ±Π°Ρ .py , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΌΠΎΠ΄ΡƒΠ»ΡŒ , ΠΏΠΎ сути, Ρ‚Π°ΠΊΠΆΠ΅ являСтся сцСнариСм Python , ΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½.

Π—Π΄Π΅ΡΡŒ снова mod.py , ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ‹ΡˆΠ΅:

ΠΌΠΎΠ΄.py

  s = "Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ."
Π° = [100, 200, 300]

def foo (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f'arg = {arg} ')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ сцСнарий:

  C: \ Users \ john \ Documents> python mod.Ρ€Ρƒ
C: \ Users \ john \ Documents>
  

Ошибок Π½Π΅Ρ‚, Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Ρ€ΠΎΠ΄Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ интСрСсно. Как написано, это всСго лишь опрСдСляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Он Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ с ΠΈ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈ запускС ΠΊΠ°ΠΊ скрипт:

ΠΌΠΎΠ΄.py

  s = "Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ."
Π° = [100, 200, 300]

def foo (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f'arg = {arg} ')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΈ)
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°)
Ρ„Ρƒ ('quux')
x = Foo ()
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ поинтСрСснСС:

  C: \ Users \ john \ Documents> python mod.py
Если это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
[100, 200, 300]
arg = quux
<__ main__.Foo ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² 0x02F101D0>
  

К соТалСнию, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ Π² Π²ΠΈΠ΄Π΅ модуля:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
Если это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.[100, 200, 300]
arg = quux
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ mod.Foo ΠΏΠΎ адрСсу 0x0169AD50>
  

ВСроятно, это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. Когда ΠΌΠΎΠ΄ΡƒΠ»ΡŒ импортируСтся, это Π½Π΅ являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ явлСниСм.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» загруТаСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ запускаСтся ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ скрипт?

ΠŸΡ€ΠΎΡΠΈΡ‚Π΅, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅.

Когда Ρ„Π°ΠΉΠ» .py импортируСтся ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Python устанавливаСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ dunder __name__ для ΠΈΠΌΠ΅Π½ΠΈ модуля.Однако, Ссли Ρ„Π°ΠΉΠ» запускаСтся ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ скрипт, __name__ (творчСски) устанавливаСтся Π² строку '__main__' . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот Ρ„Π°ΠΊΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит Π²ΠΎ врСмя выполнСния, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

ΠΌΠΎΠ΄.py

  s = "Если Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон Ρ‚Π°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ."
Π° = [100, 200, 300]

def foo (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚):
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (f'arg = {arg} ')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ

Ссли (__name__ == '__main__'):
    print ('ВыполняСтся ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ скрипт')
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΈ)
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π°)
    Ρ„Ρƒ ('quux')
    x = Foo ()
    ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ…)
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ запуститС ΠΊΠ°ΠΊ скрипт, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

  C: \ Users \ john \ Documents> python mod.Ρ€Ρƒ
Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ скрипта
Если это Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ НаполСон, Π·Π½Π°Ρ‡ΠΈΡ‚, это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
[100, 200, 300]
arg = quux
<__ main__.Foo ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎ адрСсу 0x03450690>
  

Но Ссли Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
>>> mod.foo ('Π³Ρ€Π°ΡƒΠ»Ρ‚')
arg = grault
  
ΠœΠΎΠ΄ΡƒΠ»ΠΈ

часто ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ запуска Π² качСствС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ сцСнария Π² цСлях тСстирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, содСрТащСйся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π­Ρ‚ΠΎ называСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ тСстированиСм . НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ fact.py , содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

fact.py

  def fact (n):
    Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 1, Ссли n == 1 ΠΈΠ½Π°Ρ‡Π΅ n * Ρ„Π°ΠΊΡ‚ (n-1)

Ссли (__name__ == '__main__'):
    import sys
    Ссли len (sys.argv)> 1:
        print (fact (int (sys.argv [1])))
  

Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈ функция fact () ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°:

>>>
  >>> ΠΈΠ· Ρ„Π°ΠΊΡ‚ΠΎΠ² ΠΈΠΌΠΏΠΎΡ€Ρ‚Π½Ρ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΠ²
>>> Ρ„Π°ΠΊΡ‚ (6)
720
  

Но Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² цСлочислСнный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС для тСстирования:

  C: \ Users \ john \ Documents> Python fact.Ρ€Ρƒ 6
720
  

ΠŸΠ΅Ρ€Π΅Π·Π°Ρ€ΡΠ΄ΠΊΠ° модуля

Из сообраТСний эффСктивности ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° сСанс ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. Π­Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ содСрТимого модуля. Но ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ исполняСмыС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ эти ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» mod.py :

ΠΌΠΎΠ΄.Ρ€Ρƒ

  a = [100, 200, 300]
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ('Π° =', Π°)
  
>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
Π° = [100, 200, 300]
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π°
>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π°

>>> mod.a
[100, 200, 300]
  

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ print () Π½Π΅ выполняСтся ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅. (Π’ этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π½ΠΈ Ρ‚ΠΎ, Π½ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π΅ являСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ присваивания, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ значСния mod.a , это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ присваиваниС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΎΠ½ΠΎ остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ.)

Если Π²Ρ‹ вноситС измСнСния Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ reload () ΠΈΠ· модуля importlib :

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄
Π° = [100, 200, 300]

>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π°

>>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ importlib
>>> importlib.reload (ΠΌΠΎΠ΄)
Π° = [100, 200, 300]
<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'mod' ΠΈΠ· 'C: \\ Users \\ john \\ Documents \\ Python \\ doc \\ mod.py'>
  

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

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ большоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя мноТСство ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.По ΠΌΠ΅Ρ€Π΅ роста количСства ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ становится Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… всС, Ссли ΠΎΠ½ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎ мСсто. Π­Ρ‚ΠΎ особСнно Π²Π΅Ρ€Π½ΠΎ, Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ названия ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΆΠ΅Π»Π°Ρ‚ΡŒ срСдства ΠΈΡ… Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ.

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° довольно просто, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‰ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ структуру. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ схСму:

Π—Π΄Π΅ΡΡŒ находится ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ pkg , содСрТащий Π΄Π²Π° модуля: mod1.py ΠΈ mod2.py . Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

mod1.py

  def foo ():
    print ('[mod1] foo ()')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

mod2.Ρ€Ρƒ

  Π±Π°Ρ€ ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ ():
    print ('[mod2] bar ()')

класс Bar:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

Учитывая эту структуру, Ссли ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ pkg находится Π² мСстС, Π³Π΄Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½ (Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², содСрТащихся Π² sys.path ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π²ΡƒΠΌ модулям с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΡ‡Π΅ΠΊ ( pkg.mod1 , pkg.mod2 ) ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡ… с ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ синтаксисом:

  import <имя_модуля> [, <имя_модуля>...]
  
>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ pkg.mod1, pkg.mod2
>>> pkg.mod1.foo ()
[mod1] foo ()
>>> x = pkg.mod2.Bar ()
>>> Ρ…
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ pkg.mod2.Bar ΠΏΠΎ адрСсу 0x033F7290>
  
  ΠΈΠ· <имя_модуля> ΠΈΠΌΠΏΠΎΡ€Ρ‚ <имя (Π°)>
  
>>>
  >>> from pkg.mod1 import foo
>>> foo ()
[mod1] foo ()
  
  ΠΈΠ·  ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ  ΠΊΠ°ΠΊ 
  
>>>
  >>> ΠΈΠ· ΡƒΠΏ.mod2 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Bar ΠΊΠ°ΠΊ Qux
>>> x = Qux ()
>>> Ρ…
<ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ pkg.mod2.Bar ΠΏΠΎ адрСсу 0x036DFFD0>
  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ с этими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ:

  ΠΈΠ· <имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°> import  [,  ...]
from  ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ  ΠΊΠ°ΠΊ 
  
>>>
  >>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pkg mod1
>>> mod1.foo ()
[mod1] foo ()

>>> ΠΈΠ· pkg import mod2 ΠΊΠ°ΠΊ quux
>>> quux.Π±Π°Ρ€()
[mod2] bar ()
  

ВСхничСски Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΊΠ³
>>> ΡƒΠΏ.
<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'pkg' (пространство ΠΈΠΌΠ΅Π½)>
  

Но это ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ»ΠΊΡƒ. Π₯отя это, строго говоря, синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Python, ΠΎΠ½ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ. Π’ частности, Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² pkg Π² локальноС пространство ΠΈΠΌΠ΅Π½:

>>>
  >>> ΡƒΠΏ.mod1
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
    pkg.mod1
AttributeError: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'pkg' Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 'mod1'
>>> pkg.mod1.foo ()
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
    pkg.mod1.foo ()
AttributeError: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'pkg' Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 'mod1'
>>> pkg.mod2.Bar ()
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
    pkg.mod2.Bar ()
AttributeError: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'pkg' Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° 'mod2'
  

Для фактичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ ΠΈΡ… содСрТимого Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Если Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ __init__.py присутствуСт Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΎΠ½ вызываСтся ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ»ΠΈ модуля Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для выполнСния ΠΊΠΎΠ΄Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ инициализация Π΄Π°Π½Π½Ρ‹Ρ… уровня ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

НапримСр, рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» __init__.py :

__init__.py

  print (f'Invoking __init__.py для {__name__} ')
A = ['quux', 'corge', 'grault']
  

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ этот Ρ„Π°ΠΉΠ» Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ pkg ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° инициализируСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ список A :

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΊΠ³
Π’Ρ‹Π·ΠΎΠ² __init__.py для pkg
>>> pkg.A
['quux', 'corge', 'grault']
  

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π² Π΅Π΅ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ:

mod1.py

  def foo ():
    ΠΈΠ· pkg import A
    print ('[mod1] foo () / A =', A)

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  
>>>
  >>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pkg mod1
Π’Ρ‹Π·ΠΎΠ² __init__.py для pkg
>>> mod1.foo ()
[mod1] foo () / A = ['quux', 'corge', 'grault']
  

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

__init__.py

  print (f'Invoking __init__.py для {__name__} ')
ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ pkg.mod1, pkg.mod2
  

, Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ import pkg ΠΌΠΎΠ΄ΡƒΠ»ΠΈ mod1 ΠΈ mod2 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ автоматичСски:

>>>
  >>> ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΊΠ³
Π’Ρ‹Π·ΠΎΠ² __init__.py для pkg
>>> pkg.mod1.foo ()
[mod1] foo ()
>>> pkg.mod2.bar ()
[mod2] bar ()
  

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

Начиная с Python 3.3 , Π±Ρ‹Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ‹ нСявныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ пространства ΠΈΠΌΠ΅Π½. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ»Π° __init__.py . ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ , Ссли трСбуСтся инициализация ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Но это большС Π½Π΅ трСбуСтся.

Π˜ΠΌΠΏΠΎΡ€Ρ‚

* ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Для Ρ†Π΅Π»Π΅ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ обсуТдСния Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ pkg ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ модуля.Π˜Ρ… содСрТимоС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

mod1.py

  def foo ():
    print ('[mod1] foo ()')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

mod2.py

  Π±Π°Ρ€ ΠΏΠΎ Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ ():
    print ('[mod2] bar ()')

класс Bar:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

mod3.py

  def baz ():
    print ('[mod3] baz ()')

класс Baz:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

mod4.py

  def qux ():
    print ('[mod4] qux ()')

класс Qux:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

(ΠžΠ±Ρ€Π°Π·Π½ΠΎΠ΅, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ?)

Π’Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° import * ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для модуля , , всС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· модуля ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ символов, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…, Ρ‡ΡŒΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΊΠ°ΠΊ всСгда, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с подчСркивания:

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> ΠΈΠ· ΠΏΠΊΠ³.mod3 ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

>>> dir ()
['Baz', '__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'baz']
>>> baz ()
[mod3] baz ()
>>> Π‘Π°Π·
<класс 'pkg.mod3.Baz'>
  

АналогичноС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ для ΠΏΠ°ΠΊΠ΅Ρ‚Π° выглядит Ρ‚Π°ΠΊ:

  ΠΈΠ·  import *
  

Π§Ρ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚?

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pkg *
>>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']
  

Π₯ΠΌ / Ρ‡.НСмного. Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Ρƒ вас Π±Ρ‹Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ оТидания), Ρ‡Ρ‚ΠΎ Python погрузится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Π½Π°ΠΉΠ΄Π΅Ρ‚ всС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚, ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… всС. Но, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ этого Π½Π΅ происходит.

ВмСсто этого Python слСдуСт этому соглашСнию: Ссли Ρ„Π°ΠΉΠ» __init__.py Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ package содСрТит список с ΠΈΠΌΠ΅Π½Π΅ΠΌ __all__ , ΠΎΠ½ считаСтся списком ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ· ВстрСчаСтся <имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°> import * .

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали __init__.py Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ pkg ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΡƒΠΏΠ°ΠΊ. / __ init__.py

  __all__ = [
        'mod1',
        'mod2',
        'mod3',
        'mod4'
        ]
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pkg * ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ модуля:

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° pkg *
>>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'mod1', 'mod2', 'mod3', 'mod4']
>>> mod2.Π±Π°Ρ€()
[mod2] bar ()
>>> mod4.Qux
<класс 'pkg.mod4.Qux'>
  

ИспользованиС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° * ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ считаСтся ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ, ΠΊΠ°ΠΊ ΠΈ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² , Ρ‡Π΅ΠΌ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ . Но эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΄Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ΡƒΠΊΠ°Π·Π°Π½ΠΎ import * . (ЀактичСски, ΠΎΠ½ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ это, просто ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΡΡŒ ΠΎΡ‚ опрСдСлСния __all__ . Как Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ — Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.)

ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, __all__ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈ слуТит Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ: ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ импортируСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ import * . НапримСр, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ mod1.py ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΡƒΠΏ / ΠΌΠΎΠ΄1.py

  __all__ = ['foo']

def foo ():
    print ('[mod1] foo ()')

класс Foo:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import * ΠΈΠ· pkg.mod1 Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ содСрТится Π² __all__ :

>>>
  >>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__']

>>> ΠΈΠ· ΠΏΠΊΠ³.mod1 ΠΈΠΌΠΏΠΎΡ€Ρ‚ *
>>> dir ()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__',
'__package__', '__spec__', 'foo']

>>> foo ()
[mod1] foo ()
>>> Π€Ρƒ
ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
  Π€Π°ΠΉΠ» "", строка 1, Π² 
    Π€Ρƒ
NameError: имя 'Foo' Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ
  

foo () (функция) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² локальном пространствС ΠΈΠΌΠ΅Π½, Π° Foo (класс) — Π½Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ послСднСго Π½Π΅Ρ‚ Π² __all__ .

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, __all__ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ , , Ρ‚Π°ΠΊ ΠΈ модулями для управлСния Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ импортируСтся, Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ import * . Но ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ отличаСтся :

  • Для ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° __all__ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, import * Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚.
  • Для модуля, ΠΊΠΎΠ³Π΄Π° __all__ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, import * ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС (ΠΊΡ€ΠΎΠΌΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅ догадались, ΠΈΠΌΠ΅Π½, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ с подчСркивания).

ΠŸΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. НапримСр, Π΄Π°Π²Π°ΠΉΡ‚Π΅ внСсСм Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° package ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π§Π΅Ρ‚Ρ‹Ρ€Π΅ модуля ( mod1.py , mod2.py , mod3.py ΠΈ mod4.py ) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½Π΅Π΅. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ pkg , ΠΎΠ½ΠΈ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Π΄Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π° , sub_pkg1 ΠΈ sub_pkg2 .

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Ρ€Π°Π½Π΅Π΅. Бинтаксис Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½, Π½ΠΎ для отдСлСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ запись Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ :

>>>
  >>> import pkg.sub_pkg1.mod1
>>> pkg.sub_pkg1.mod1.foo ()
[mod1] foo ()

>>> ΠΈΠ· pkg.sub_pkg1 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ mod2
>>> mod2.bar ()
[mod2] bar ()

>>> ΠΈΠ· pkg.sub_pkg2.mod3 import baz
>>> baz ()
[mod3] baz ()

>>> ΠΈΠ· ΠΏΠΊΠ³.sub_pkg2.mod4 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ qux ΠΊΠ°ΠΊ grault
>>> grault ()
[mod4] qux ()
  

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ родствСнного уровня (Π² случаС, Ссли родствСнный элСмСнт содСрТит Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹). НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ foo () (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ mod1 ) ΠΈΠ· модуля mod3 . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ :

ΡƒΠΏΠ°ΠΊ. / Sub__pkg2 / mod3.Ρ€Ρƒ

  def baz ():
    print ('[mod3] baz ()')

класс Baz:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ

ΠΈΠ· pkg.sub_pkg1.mod1 import foo
foo ()
  
>>>
  >>> ΠΈΠ· pkg.sub_pkg2 import mod3
[mod1] foo ()
>>> mod3.foo ()
[mod1] foo ()
  

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ , Π³Π΄Π΅ .. относится ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅. Π˜Π·Π½ΡƒΡ‚Ρ€ΠΈ mod3.py , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ sub_pkg2 ,

  • .. ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ( pkg ) ΠΈ
  • .. sub_pkg1 ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ sub_pkg1 Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΡƒΠΏΠ°ΠΊ. / Sub__pkg2 / mod3.py

  def baz ():
    print ('[mod3] baz ()')

класс Baz:
    ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ

from .. import sub_pkg1
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (sub_pkg1)

from ..sub_pkg1.mod1 import foo
foo ()
  
>>>
  >>> ΠΈΠ· pkg.sub_pkg2 import mod3
<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ 'pkg.sub_pkg1 '(пространство ΠΈΠΌΠ΅Π½)>
[mod1] foo ()
  

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом руководствС Π²Ρ‹ рассмотрСли ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹:

  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python
  • ΠœΠ΅ΡΡ‚Π°, Π³Π΄Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΈΡ‰Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ
  • Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import
  • Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, выполняСмый ΠΊΠ°ΠΊ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ скрипт
  • Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹
  • Как ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ функциям, доступным Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… сторонних ΠΈ встроСнных модулях, доступных Π² Python.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ собствСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, созданиС собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, сопровоТдСниС ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° Python.org :

Бчастливого ΠΏΠΈΡ‚ΠΎΠ½ΠΈΠ½Π³Π°!

ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Python — GeeksforGeeks

ΠœΠΎΠ΄ΡƒΠ»ΡŒ — это Ρ„Π°ΠΉΠ», содСрТащий опрСдСлСния ΠΈ утвСрТдСния Python.ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄. Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ связанного ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ использованиС ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ логичСски ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Python

def add (x, y):

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (x + y)

def subtract (x, y):

return (x - y)

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой источник Python Ρ„Π°ΠΉΠ» ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ исходном Ρ„Π°ΠΉΠ»Π΅ Python.
Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ встрСчаСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°, ΠΎΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ присутствуСт Π² ΠΏΡƒΡ‚ΠΈ поиска. ΠŸΡƒΡ‚ΡŒ поиска — это список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΡ‰Π΅Ρ‚ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° модуля. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ calc.py, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²Π²Π΅Ρ€Ρ…Ρƒ скрипта:

Python

import calc

print (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ( 10 , 2 ))

Π’Ρ‹Ρ…ΠΎΠ΄:


 12
 

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ from import ЗаявлСниС

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Python from позволяСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· модуля. from .. import .. ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Python3

from math import sqrt, factorial

print (sqrt ( ) 16 ))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π» ( 6 ))

Π’Ρ‹Ρ…ΠΎΠ΄:

 4,0
720
 

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

Π‘ΠΈΠΌΠ²ΠΎΠ» *, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ from import, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСх ΠΈΠΌΠ΅Π½ ΠΈΠ· модуля Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½.

Бинтаксис:

 ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° имя_модуля *
 

ИспользованиС * ΠΈΠΌΠ΅Π΅Ρ‚ свои прСимущСства ΠΈ нСдостатки. Если Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ понадобится ΠΎΡ‚ модуля, Π½Π΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ *, ΠΈΠ½Π°Ρ‡Π΅ сдСлайтС это.

Python3

ΠΈΠ· случайный ΠΈΠΌΠΏΠΎΡ€Ρ‚ *

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( dir (случайный))

3

[‘__call__’, ‘__class__’, ‘__delattr__’, ‘__dir__’, ‘__doc__’, ‘__eq__’, ‘__format__’, ‘__ge__’, ‘__getattribute__’, ‘__gt__’, ‘__ __hashit__ ‘,’ __init_subclass__ ‘,’ __le__ ‘,’ __lt__ ‘,’ __module__ ‘,’ __name__ ‘,’ __ne__ ‘,’ __new__ ‘,’ __qualname__ ‘,’ __reduce__ ‘,’ __reduce_ex__ ‘,’ __repr__ ‘,’ __repr__ ‘, ‘__setattr__’, ‘__sizeof__’, ‘__str__’, ‘__subclasshook__’, ‘__text_signature__’]

Ѐункция dir ()

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



Python3

ΠΈΠΌΠΏΠΎΡ€Ρ‚ случайный

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ( dir (случайный))

Π’Ρ‹Ρ…ΠΎΠ΄: 0 918 BP ‘,’ LOG4 ‘,’ NV_MAGICCONST ‘,’ RECIP_BPF ‘,’ Random ‘,’ SG_MAGICCONST ‘,’ SystemRandom ‘,’ TWOPI ‘,’ _BuiltinMethodType ‘,’ _MethodType ‘,’ _Sequence ‘,’ ___Sall__ ‘,’ ‘__builtins__’, ‘__cached__’, ‘__doc__’, ‘__file__’, ‘__loader__’, ‘__name__’, ‘__package__’, ‘__spec__’, ‘_acos’, ‘_bisect’, ‘_ceil’, ‘_cos’, ‘_e , _warn, betavariate, choice, choices, expovariate, gammavariate, gauss, getrandbits, getstate, lognormvariate, normalvariate, paretovariate, randint ‘,’ random ‘,’ randrange ‘,’ sample ‘,’ seed ‘,’ setstate ‘,’ shuffle ‘,’ triangular ‘,’ uniform ‘,’ Ρ„ΠΎΠ½ΠΌ isesvariate ’,β€˜ weibullvariate ’]

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ встроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python:

Python3

import math

printath (math.sqrt ( 25 ))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (math.pi)

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (матСматичСскиС градусы ( 2 ))

print (math.radians ( 60 ))

print (math.sin ( 2 ))

print (math.cos ( 0.5 ))

print (math.tan ( 0,23 ))

print (math.factorial ( 4 ))

ΠΈΠΌΠΏΠΎΡ€Ρ‚ случайный

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (случайный.Ρ€Π°Π½Π΄ΠΈΠ½Ρ‚ ( 0 , 5 ))

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (случайный.random ())

print (random.random () * 100 )

Бписок = [ 1 , 4 , True , 800 , Β«ΠΏΠΈΡ‚ΠΎΠ½Β» , 27 , Β«ΠΏΡ€ΠΈΠ²Π΅Ρ‚Β» ]

ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (случайный.Π²Ρ‹Π±ΠΎΡ€ ( Бписок ))

ΠΈΠΌΠΏΠΎΡ€Ρ‚ datetime

ΠΈΠ· datetime import date

import time

print (time.time ())

print (date.fromtimestamp ( 454554 ))

Π’Ρ‹Π²ΠΎΠ΄:

 5.0
3,14159265359
114,5026
1.0471975512
0,

7426826 0,87758256189 0,234143362351 24 3 0,401533172951 88,4

6788 Π˜ΡΡ‚ΠΈΠ½Π½Ρ‹ΠΉ 1461425771,87 1970-01-06

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ: Gaurav Shrestha . ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, обсуТдСнной Π²Ρ‹ΡˆΠ΅. Если Π²Π°ΠΌ нравится GeeksforGeeks, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти свой Π²ΠΊΠ»Π°Π΄, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π° @ geeksforgeeks.ΠΎΡ€Π³. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ваша ΡΡ‚Π°Ρ‚ΡŒΡ появляСтся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π³ΠΈΠΊΠ°ΠΌ.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‰ΠΈΠΊ! Π£ΠΊΡ€Π΅ΠΏΠΈΡ‚Π΅ свои основы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python Programming Foundation ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ основы.

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ ΠΊ собСсСдованию. Π Π°ΡΡˆΠΈΡ€ΡŒΡ‚Π΅ свои ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ структур Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ курса Python DS . И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ своС ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ ΠΏΠΎ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ МашинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ - курс Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня


Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля Python - ΠΈΠΌΠΏΠΎΡ€Ρ‚ β€’ reticulate

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python, сдСлав Π΅Π³ΠΎ доступным для использования ΠΈΠ· R.

 ΠΈΠΌΠΏΠΎΡ€Ρ‚ (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, as = NULL, convert = TRUE, delay_load = FALSE)

import_main (convert = TRUE)

import_builtins (convert = TRUE)

import_from_path (module, path = ".", convert = TRUE, delay_load = FALSE) 

АргумСнты

ΠΌΠΎΠ΄ΡƒΠ»ΡŒ

Имя модуля Python.

ΠΊΠ°ΠΊ

ПсСвдоним для ΠΈΠΌΠ΅Π½ΠΈ модуля (влияСт Π½Π° ΠΈΠΌΠ΅Π½Π° классов R). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это влияСт Π½Π° имя S3 ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ поэтому Π²ΠΌΠ΅ΡˆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ Π² Π΄ΠΈΡΠΏΠ΅Ρ‚Ρ‡Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° S3).

ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ

Boolean; Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Python автоматичСски ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΈΡ… эквивалСнту R? Если установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FALSE , Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Python Π² R Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ py_to_r () .

delay_load

Boolean; ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ модуля Π΄ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ использования? Когда FALSE , ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π‘ΠΌ. Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ использования.

ΠΏΡƒΡ‚ΡŒ

ΠŸΡƒΡ‚ΡŒ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ слСдуСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ R, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python. Доступны Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ модуля Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ $ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· py_get_attr () .

ВстроСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python

ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Python (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, len () ) доступны Ρ‡Π΅Ρ€Π΅Π· Python встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ имя этого модуля измСнилось ΠΌΠ΅ΠΆΠ΄Ρƒ Python 2 ΠΈ Python 3, ΠΌΡ‹ прСдоставляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ import_builtins () для абстрагирования это имя измСнится.

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ delay_load ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Если Ρ‚Π΅Π±Π΅ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ваш ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загруТаСтся Π»Π΅Π½ΠΈΠ²ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠ²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Python Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ явно запросил Π΅Π³ΠΎ), Ρ‚ΠΎΠ³Π΄Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ИБВИНА ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ список ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ запускаСтся, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΏΠΎΠ·ΠΆΠ΅. НапримСр:

 delay_load = list (
  
  # запускаСм Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля
  before_load = функция () {...}
  
  # запускаСм сразу послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ модуля
  on_load = function () {...}
  
  # Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ, Ссли ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ модуля ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка
  on_error = функция (ошибка) {...}
  
)
 

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ссли Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ on_load .

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· ΠΏΡƒΡ‚ΠΈ

import_from_path () ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π­Ρ‚ΠΎ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, связанных с ΠŸΠ°ΠΊΠ΅Ρ‚ R - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

 ΠΏΡƒΡ‚ΡŒ <- system.Ρ„Π°ΠΉΠ» ("python", package = )
reticulate :: import_from_path (<ΠΌΠΎΠ΄ΡƒΠ»ΡŒ>, ΠΏΡƒΡ‚ΡŒ = ΠΏΡƒΡ‚ΡŒ, delay_load = TRUE)
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

 

Ссли (Π›ΠžΠ–Π¬) { основной <- import_main () sys <- import ("sys") }

Π Π°Π±ΠΎΡ‚Π° с модулями Π² Python

Как Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ, Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Python Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π΅, ΠΏΠΎΠ·ΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ сцСнарии. По ΠΌΠ΅Ρ€Π΅ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ² для упрощСния обслуТивания, Π° Ρ‚Π°ΠΊΠΆΠ΅ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°.РСшСниСм этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… опрСдСлСния Π² Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Python.

ΠŸΡ€ΠΎΡ‰Π΅ говоря, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ - это Ρ„Π°ΠΉΠ», состоящий ΠΈΠ· ΠΊΠΎΠ΄Π° Python. Он ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ исполняСмый ΠΊΠΎΠ΄. На любой Ρ„Π°ΠΉΠ» Python ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.Π€Π°ΠΉΠ», содСрТащий ΠΊΠΎΠ΄ Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: test.py , называСтся ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ, ΠΈ Π΅Π³ΠΎ имя Π±ΡƒΠ΄Π΅Ρ‚ test .

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ написания ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½ΠΎ самый простой способ - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ свои собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π²Π°ΠΌ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° наш курс Intro to Python for Data Science, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ основы языка программирования Python.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности любого модуля, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² свою Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово import вмСстС с ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ модуля. Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ встрСчаСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import , ΠΎΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π²Π°ΡˆΡƒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ (.) ВмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ модуля. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ math импортируСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ sqrt () .

  import math # Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ввСсти эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово `import` вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
число = 4
print (math.sqrt (num)) # Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ для доступа ΠΊ sqrt () Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля "math"
  

Из сообраТСний эффСктивности ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ импортируСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π·Π° сСанс ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свой ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, Ссли это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ reload () , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: reload (имя_модуля) .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² свою ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΡ€Π° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. НаписаниС модуля ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° написаниС любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Python. НачнСм с написания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для слоТСния / вычитания Π΄Π²ΡƒΡ… чисСл Π² Ρ„Π°ΠΉΠ»Π΅ calculate.py .

  def add (x, y):
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (x + y)
def sub (x, y):
    Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ (x-y)
  

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ этот сцСнарий ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ скрипт python Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ module_test.py ΠΈ Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

  Π˜ΠΌΠΏΠΎΡ€Ρ‚ расчСтов # Π˜ΠΌΠΏΠΎΡ€Ρ‚ расчСтных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
print (calculate.add (1,2)) # Ѐункция Π²Ρ‹Π·ΠΎΠ²Π°, опрСдСлСнная Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ добавлСния.
  

Если Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ module_test.py , Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Β«3Β» Π² качСствС Π²Ρ‹Π²ΠΎΠ΄Π°. Когда ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ наткнулся Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import , ΠΎΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΌΠΎΠ΄ΡƒΠ»ΡŒ вычислСния Π² ваш ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π²Ρ‹ смогли ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add () .

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ способы ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

  • ΠΈΠ· .. ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π²Π΅Π΄ΠΎΠΌΠΎΡΡ‚ΡŒ
  • ΠΈΠ· .. ΠΈΠΌΠΏΠΎΡ€Ρ‚ * выписка
  • ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ модуля

ΠΈΠ· .. ΠΈΠΌΠΏΠΎΡ€Ρ‚ выписка

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ from..import позволяСт ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ / ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· модуля вмСсто ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° всСго. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ расчСт Π² module_test.py Π±Ρ‹Π»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ add () ΠΈ sub () . Но Ρ‡Ρ‚ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ функция add () Π² вашСм ΠΊΠΎΠ΄Π΅?

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС from..import

  ΠΈΠ· расчСта ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (1,2))
  

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ импортируСтся ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ функция add () . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС add () ? Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½Π΅ΠΌΡƒ доступ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ имя модуля.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², раздСляя ΠΈΡ… запятыми Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. ВзглянитС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  ΠΈΠ· расчСта ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ, ΠΏΠΎΠ΄ΠΏ.
  

ΠΈΠ· .. ΠΈΠΌΠΏΠΎΡ€Ρ‚ * выписка

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ модуля. Π­Ρ‚ΠΎ сдСлаСт всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ модуля Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π² вашСм ΠΊΠΎΠ΄Π΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС ΠΈΠ· .. import * :

  ΠΈΠ· ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° расчСта *
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (1,2))
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (суб (3,2))
  

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° , Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ Π²Π°ΠΌ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ использования ΠΈΠ·..import ΠΈ ΠΈΠ·..import * , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ ваш ΠΊΠΎΠ΄ ΠΌΠ΅Π½Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

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

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

  расчСт ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΊΠ°ΠΊ ΠΊΠ°Π».
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (ΠΊΠ°Π».Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (1,2))
  

Π’Ρ‹ сэкономили врСмя Π½Π° Π²Π²ΠΎΠ΄Π΅ тСкста, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π² вычислСниС Π² cal .
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° , Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вычислСниС.add (1,2) , Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ вычислСниС большС Π½Π΅ распознаСтся Π² вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π’Π°ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ваши ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для использования Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… / ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΈ ΠΈΡ… физичСскоС располоТСниС Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, находящийся Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², прСдоставляСмых Python.
Когда Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ , расчСт , ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ сначала ΠΈΡ‰Π΅Ρ‚ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с этим ΠΈΠΌΠ΅Π½Π΅ΠΌ. Если Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ ΠΈΡ‰Π΅Ρ‚ Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ Calculation.py Π² спискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ sys.path .
sys.path содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ мСстополоТСния:

  • ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, содСрТащий сцСнарий Π²Π²ΠΎΠ΄Π° (ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³).
  • PYTHONPATH (список ΠΈΠΌΠ΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² с Ρ‚Π΅ΠΌ ΠΆΠ΅ синтаксисом, Ρ‡Ρ‚ΠΎ ΠΈ пСрСмСнная ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ PATH).
  • - Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, зависящСС ΠΎΡ‚ установки.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ module_test.py находится Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ / home / datacamp / , Π° Π²Ρ‹ пСрСмСстили calculate.py Π² / home / test / . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ sys.path , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ / home / test / Π² список ΠΏΡƒΡ‚Π΅ΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Для этого Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ module_test.py ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  импортная систСма
sys.ΠΏΡƒΡ‚ΡŒ.append ('/ главная / тСст /')

расчСт ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (расчСт.Π°Π΄Π΄ (1,2))
  

Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, поэтому Π² Python Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π΅Π³ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ. Один ΠΈΠ· способов - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .pyc .
На Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Python ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π½Π° Ρ€ΠΎΠ΄Π½ΠΎΠΉ язык вашСго ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈ запускаСт Π΅Π³ΠΎ. Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» .pyc ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ - это Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° модуля, ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, эти Ρ„Π°ΠΉΠ»Ρ‹ с Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ компиляциСй Π½Π΅ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° , Ρ‡Ρ‚ΠΎ эти Ρ„Π°ΠΉΠ»Ρ‹ .pyc ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ .py . Если Python Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° запись Π² Ρ„Π°ΠΉΠ»Ρ‹ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ„Π°ΠΉΠ»Ρ‹ .pyc Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ созданы.

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

  расчСт ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (test.add (1,2))
print (dir (расчСт))
  

Π’Ρ‹Ρ…ΠΎΠ΄:
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']

Π’ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ sub . Атрибут __name__ содСрТит имя модуля.ВсС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с подчСркивания, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Python ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, связанными с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ модуля трСбуСтся для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ управлСния ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ возмоТности ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования. Python прСдоставляСт Π²Π°ΠΌ нСсколько встроСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова import . Python Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Он Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ„Π°ΠΉΠ»Ρ‹ с Π±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ компиляциСй, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚ Π½Π° использованиС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Ρ‡Ρ‚ΠΎ ускоряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ dir () , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… модулях, Ρ‚Π°ΠΊ ΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… модулях.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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