πŸ–₯ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ утиная типизация



НСявная типизация, латСнтная типизация ΠΈΠ»ΠΈ утиная типизация (Π°Π½Π³Π». Duck typing) – Π²ΠΈΠ΄ динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, примСняСмой Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках программирования (Perl, Smalltalk, Python, Objective-C, Ruby, JavaScript, Groovy, ColdFusion, Boo, Lua, Go, C#), ΠΊΠΎΠ³Π΄Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ свойств, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ наслСдованию ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ класса. Π’ΠΎ Π΅ΡΡ‚ΡŒ считаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс, Ссли ΠΎΠ½ содСрТит всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ этого интСрфСйса, нСзависимо ΠΎΡ‚ связСй Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования ΠΈ принадлСТности ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ классу.



Утиная типизация Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ иСрархичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ:



- Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ (ΠΏΡƒΡ‚Ρ‘ΠΌ наслСдования) Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ интСрфСйса со всСми настоящими ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠΌΠΈ интСрфСйсами, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ ΠΈΠ΄Π΅ΠΉΠ½ΠΎ совмСстим;



-ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа связСй Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€ΠΈ хотя Π±Ρ‹ частичной ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.



@python_job_interview