MicroPython рддреНрд╡рд░рдг

MicroPython рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬреЛ рдЫреЛрдЯреЗ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рдореИрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдкрд┐рдереЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрдЯреИрдВрдб рдмрдирд╛рддрд╛ рд╣реВрдВред REPL рдФрд░ рд╕рд░рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, MicroPython DIY рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдмрд╛рддрдЪреАрдд рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЙрдирдХреА рдмрд╛рддрдЪреАрдд рдХреА рдЧрддрд┐ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд░рдЦрддрд╛ рд╣реВрдВред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЧрддрд┐ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЬрдм рдЕрд▓рд╛рд░реНрдо рд╕рд╛рдпрд░рди рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдмрд╣реБрдд рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдЧрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпрд╛ 10 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж 10 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдбред

рд▓реЗрдХрд┐рди рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ, рдЧрддрд┐ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ MicroPython рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЙрдкрдпреБрдХреНрддрддрд╛ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рд╢реЛрдз рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдкрд┐рдереЙрди рдбреЗрдорд┐рдпрди рдЬреЙрд░реНрдЬ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рднрд╛рд╖рдг рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдерд╛ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрдереЙрди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд┐рддрдиреА рдЬрд▓реНрджреА рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛ред

рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдбрд┐рд╡рд╛рдЗрд╕ ESP8266 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реЛрдЧрд╛, рдмреЛрд░реНрдб рдкрд░ MicroPython рд╕рдВрд╕реНрдХрд░рдг esp8266-2018511-v1.9.4 рдХреЗ рд╕рд╛рде NodeMcu рдмреЛрд░реНрдб рдкрд░ред



рдореИрдВ рдмрдЯрди рджрдмрд╛рдКрдВрдЧрд╛ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рджреВрд╕рд░реЗ рдкреИрд░ рдкрд░ рджрдмрд╛рдиреЗ рдФрд░ 3.3 V рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмреАрдЪ рдЖрд╕реНрдЯрд╕реАрд▓рд╕реНрдХрдк рдкрд░ рд╕рдордп рдЕрдВрддрд░ рджрд░реНрдЬ рдХрд░реВрдВрдЧрд╛ред рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдк 15 рдмрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд╕рдд рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рд╕рдЪрд┐рддреНрд░) рдФрд░ рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рд░реЗрдЦрд╛рдВрдХрди рдореЗрдВ рдХрд╛рд▓реА рдкрдЯреНрдЯреА)ред

рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 1ред


рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ "рд╕рд┐рд░ рдкрд░" рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рддреБрдЪреНрдЫ рджрд┐рдЦрддрд╛ рд╣реИ:

import machine import time o = machine.Pin(5, machine.Pin.OUT) #D1 out i = machine.Pin(4, machine.Pin.IN) #D2 in while 1: if i.value(): o.value(1) time.sleep(0.1) o.value(0) 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░рдВрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдпрд╣рд╛рдВ рдФрд░ рдЕрдиреНрдп рддрд░рдВрдЧреЛрдВ рдкрд░, "рдмреНрд▓реВ" рд╕рд┐рдЧреНрдирд▓ рдмрдЯрди рдХреЗ рд╕рд╛рде рдкрд┐рди рд╣реИ, "рдЧреНрд░реАрди" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд┐рди рд╣реИред 15 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:



рдФрд╕рддрди, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд▓рдЧрднрдЧ 310 рдорд╛рдЗрдХреНрд░реЛрд╕реЗрдХрдВрдб рд╣реИ, рдЕрдзрд┐рдХрддрдо 356 ╬╝s рд╣реИ, рдмрд╣реБрдд рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 2


рдЖрдк рд╡реНрдпрд╡рдзрд╛рди рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдирдХ рдХреЛрдб "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

 import machine import time o = machine.Pin(5, machine.Pin.OUT) #D1 out i = machine.Pin(4, machine.Pin.IN) #D2 in def f(_): o.value(1) time.sleep(0.1) o.value(0) i.irq(trigger=machine.Pin.IRQ_RISING, handler=f) 

рдФрд░ рдЪрд┐рддреНрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:




рдФрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 306 ╬╝s рд╣реИред

рдЗрдВрдЯрд░рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд▓рдЧрднрдЧ 20% рдХреА рдЧрддрд┐ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдлреИрд▓рддрд╛ рд╣реИред

рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 3


рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо @ micropython.native рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рдореВрд▓ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ ред

рдХреЛрдб рд╡рд┐рдХрд▓реНрдк:

 import machine import time o = machine.Pin(5, machine.Pin.OUT) #D1 out i = machine.Pin(4, machine.Pin.IN) #D2 in @micropython.native def f(): while 1: if i.value(): o.value(1) time.sleep(0.1) o.value(0) f() 

рддрд░рдВрдЧ рдкрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреИрдЯрд░реНрди:



рдкрд┐рдЫрд▓реА рдкрджреНрдзрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рддреНрд╡рд░рдг рд▓рдЧрднрдЧ рджреЛрдЧреБрдирд╛ рд╣реИ:



рд╕рдмрд╕реЗ рд▓рдВрдмреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 128 ╬╝s рд╣реИред

рдЯреЗрд╕реНрдЯ рдирдВрдмрд░ 4


рдПрдХ "рддреЗрдЬ" MicroPython рдХреА рдЦреЛрдЬ рдореЗрдВ рдЕрдЧрд▓рд╛ рдХрджрдо @ micropython.viper рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕реАрдзреЗ рдорд╛рдЗрдХреНрд░реЛрдкреНрд░реЛрд╕реЗрд╕рд░ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ (рд░рдЬрд┐рд╕реНрдЯрд░ рдкрддреЗ рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред

 import time @micropython.viper def f(): O = ptr32(0x60000300) #  GPIO ESP8266 while 1: s = ((O[6] & 0x10) >> 4) #    4  if s: O[1] = 0x20 # 5  time.sleep(0.1) O[2] = 0x20 # 5  f() 

рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреЗрдЬреА рдЖрдИ:



рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ (рдЕрдзрд┐рдХрддрдо 820 рдПрдирдПрд╕) рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:





рдпрджрд┐ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк @ micropython.asm_thumb рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдбрд╛рдВрддрд░рдХ рдЖрд╡реЗрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде, рдЕрдЬрдЧрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИ (рдФрд░ рдкрд╛рдпрдерди рдХреЗ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд▓рд╛рдн рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ), рдФрд░ рдпрджрд┐ рдЙрдЪреНрдЪ рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЕрдиреНрдп рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдлрдкреАрдЬреАрдП (рдЬрд╣рд╛рдВ рдкрд╛рдпрдерди рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдФрд░ рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ)ред

UART


рдпрджрд┐ рдХрд┐рд╕реА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рдж рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ UART рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд▓реЗрдВред

рдкрд╣рд▓реЗ рдмрд╛рдзрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ:

 import machine i = machine.Pin(4, machine.Pin.IN) #D2 in ua = machine.UART(1) ua.init(1000000) def f(_): ua.write(b'\x01') i.irq(trigger=machine.Pin.IRQ_RISING, handler=f) 

рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрд░рдВрдЧ:



рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 248 ╬╝s рд╣реИред
рдФрд░ рд╡рд╛рдЗрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд╕рд░рд╛ рдкрд░реАрдХреНрд╖рдг:

 import machine import time i = machine.Pin(4, machine.Pin.IN) #D2 in ua = machine.UART(1) ua.init(1000000) @micropython.viper def f(): O = ptr32(0x60000300) while 1: if ((O[6] & 0x10) >> 4): ua.write(b'\x01') time.sleep(0.1) f() 

рдФрд░ рджреВрд╕рд░реА рдкрд░реАрдХреНрд╖рд╛ рдореЗрдВ рддрд░рдВрдЧ:



рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 71 ╬╝s рд╣реИред
рджреЛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдФрд╕рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп:



рджреВрд╕рд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЗрдирдкреБрдЯ рдкреНрд░рднрд╛рд╡ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


MicroPython рдЖрдкрдХреЛ рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛рдУрдВ (OOP, рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рд╕реВрдЪреА рдФрд░ рддрд╛рдирд╛рд╢рд╛рд╣реА comprahansions, рдЖрджрд┐) рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИрдВ, рдЬрдм рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ "рдХреНрд▓рд╛рд╕рд┐рдХ" рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рддреЗрдЬ рдХрд░реЗрдВред

Source: https://habr.com/ru/post/hi448702/


All Articles