Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Рассмотрим процСсс создания собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Для этого создадим Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ mm. py (для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ указываСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .Ρ€Ρƒ), содСрТащий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ (содСрТимоС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ модуля): Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Python, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ reload с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ΅Π½ΠΈ модуля ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загрузится ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ. Π—Π°Ρ‚Π΅ΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Рассмотрим процСсс создания собствСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. Для этого создадим Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ mm. py (для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ указываСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .Ρ€Ρƒ), содСрТащий ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ (содСрТимоС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ модуля):

# mm. py def f () :

return 4.

Π—Π°Ρ‚Π΅ΠΌ сообщим Python, Π³Π΄Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ созданный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Выясним Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ path модуля sys, Π³Π΄Π΅ Python ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρƒ Π²Π°Ρ список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ):

>" import sys >>> sys.path.

[?', 'Π‘:Python36−32Libidlelib1, 'C:Python36;

  • 32python36.zip', 'C:Python36−32DLLs',
  • 1C:Python36−32lib', 'C:Python36−32',
  • 1C:Python36−32libsite-packages']

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΠΌ созданный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² 'C:Python36−32'. Если всС сдСлано ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΡƒΠΊΠ°Π·Π°Π² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ имя Π±Π΅Π· Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

>" import mm.

>>> mm. f () # Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ mm Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ f 4.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ), ΡƒΠΊΠ°ΠΆΠ΅ΠΌ для Π½Π΅Π³ΠΎ имя mtest. py:

# mtest. py print ('test').

Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ созданный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ нСсколько Ρ€Π°Π· подряд:

>" import mtest test.

>" import mtest.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΈΠΌΠΏΠΎΡ€Ρ‚ модуля ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ содСрТащихся Π² Π½Π΅ΠΌ инструкций, Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ируСтся. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ — рСсурсоСмкий процСсс, поэтому лишний Ρ€Π°Π· Python Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ reload ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ imp:

>" import imp.

>>> imp. reload (mtest).

test.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Python, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ПослС Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ reload с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠΌΠ΅Π½ΠΈ модуля ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ загрузится ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ экспСримСнты. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡˆΡƒΡ€Π³.Ρ€Ρƒ:

# mypr.Ρ€Ρƒ def func (Ρ…):

return Ρ… ** 2 + 7.

Ρ… = int (input («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: «)) print (func (x)).

Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ инструкций, содСрТащихся Π²Π½ΡƒΡ‚Ρ€ΠΈ модуля:

«> import mypr Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: 111 12 328.

Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ поступит!), Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ func ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Ρ для использования Π΅Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅? Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ исполнСниС модуля (Run —*β€’ Run Module) ΠΎΡ‚ Π΅Π³ΠΎ импортирования (import mypr), сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная.

_name_(ΠΈΠΌΠ΅Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python.

Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ся двумя Π½ΠΈΠΆΠ½ΠΈΠΌΠΈ подчСркиваниями).

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ модуля (Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ >) пСрСмСнная _name_Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ строку «_main_», Π° Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° — имя модуля (рис. 4.20).

Puc. 4.20. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ модуля Рассмотрим использованиС этого ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠ° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, для этого создадим ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ mmtest. py:

# mmtest. py def func (x):

return x ** 2 + 7.

if _name_ == «_main_» :

x = int (input («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: «)) print (func (x)).

ΠŸΡ€ΠΈ запускС (Run —*? Run Module) Π΄Π°Π½Π½ΠΎΠ³ΠΎ модуля выполнятся всС инструкции, содСрТащиСся Π² Π½Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ условиС_name_.

== «_main_» Π²Π΅Ρ€Π½Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ True. Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля (import.

mmtest) ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ func.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ