Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠΈΡ‚ΠΎΠ½ - ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, классы, экзСмпляры (БИ)Β»

Автор Π‘Ρ€ΠΎΠΉΡ‚ΠΌΠ°Π½ ОлСг

ΠœΠΎΠ΄ΡƒΠ»ΠΈ - структурированиС пространства ΠΈΠΌΠ΅Π½

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

Π’ ΠŸΠΈΡ‚ΠΎΠ½Π΅ Ρ‚Ρ€ΠΈ пространства ΠΈΠΌΠ΅Π½: встроСнноС пространство ΠΈΠΌΠ΅Π½ (ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля доступа ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ sys), локальноС пространство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ глобальноС пространство модуля. (ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ создаСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ пространства классов ΠΈ экзСмпляров классов, ΠΎΠ± этом Π½ΠΈΠΆΠ΅). КаТдоС пространство ΠΈΠΌΠ΅Π½ - это список ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠΌΠ΅Π½ΠΈ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ - это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ описаний, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ±Ρ‰Π΅Π΅ пространство ΠΈΠΌΠ΅Π½ - глобальноС пространство модуля. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° import, послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ модуля становятся доступными. КакиС ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π½Π° становятся доступны, опрСдСляСт ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ import: Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ importΒ module Π΄Π΅Π»Π°Π΅Ρ‚ доступным Ρ€ΠΎΠ²Π½ΠΎ ΠΎΠ΄Π½ΠΎ имя - имя модуля module, Π½ΠΎ Π·Π°Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· это имя ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° модуля Π² Π²ΠΈΠ΄Π΅ module.name. Π’ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ fromΒ moduleΒ importΒ name ΠΈΠ· модуля импортируСтся ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ имя ΠΈΠ»ΠΈ список ΠΈΠΌΠ΅Π½. Π’ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ fromΒ moduleΒ importΒ * ΠΈΠ· модуля ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ всС ΠΈΠΌΠ΅Π½Π°. Π₯отя Π°Π²Ρ‚ΠΎΡ€ модуля ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ этот список, Π° Π² отсутствии Ρ‚Π°ΠΊΠΎΠ³ΠΎ ограничСния Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с подчСркивания - считаСтся, Ρ‡Ρ‚ΠΎ это Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° модуля, Π½Π΅ входящиС Π² Π΅Π³ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ интСрфСйс.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ написан Π½Π° Python, C ΠΈΠ»ΠΈ C++. ΠœΠΎΠ΄ΡƒΠ»ΠΈ, написанныС Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ классы (ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ€Π΅Ρ‡ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Π½ΠΈΠΆΠ΅). ΠœΠΎΠ΄ΡƒΠ»ΠΈ написанныС Π½Π° C ΠΈ C++ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΎΠ΄ΡƒΠ»ΠΈ, написанныС Π½Π° C/C++ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСнныС (builtin) ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ (DLL Π² Windows, раздСляСмыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Ρ‚Π΅Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… UNIX, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ выполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ELF).

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

ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ XML содСрТит Π² сСбС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ DOM, SAX, Parsers (ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π² зависимости ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PyExpat ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ importΒ xml.parsers.expat, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ этого модуля Π±ΡƒΠ΄ΡƒΡ‚ доступны ΠΊΠ°ΠΊ xml.parsers.expat.ParserCreate, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ fromΒ xml.parsersΒ importΒ expat, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ этого модуля Π±ΡƒΠ΄ΡƒΡ‚ доступны ΠΊΠ°ΠΊ expat.ParserCreate. Или сразу fromΒ xml.parsers.expatΒ importΒ ParserCreate!