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

рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдкрд╛рдпрдерди 3.7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд╛рдпрдерди рдХреЗ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (3.6+)
рддрд╛рд░ рдХреЗ рдмрд┐рдирд╛, рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕реЗ рдЙрдкрдХрд░рдг рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рдорд╛рдирд╕рд┐рдХ рд╢рд╛рдВрддрд┐ рдЦреЛрдП рдмрд┐рдирд╛ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕
format
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
user = "Jane Doe" action = "buy" log_message = 'User {} has logged in and did an action {}.'.format( user, action ) print(log_message)
рдкрд╛рдпрдерди 3,
format
рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде, рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (
f- рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ , f- рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рдЪреАрд▓рд╛ рдЙрдкрдХрд░рдг рд╣реИрдВред рдпрд╣рд╛рдБ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╕реНрд╡рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
user = "Jane Doe" action = "buy" log_message = f'User {user} has logged in and did an action {action}.' print(log_message)
Pathlib рдореЙрдбреНрдпреВрд▓ (3.4+)
рдлрд╝реЙрд░реНрдореЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдПрдХ рдмреЗрд╣рддрд░реАрди рддрдХрдиреАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрде, рдЬреЛ рдЙрдирдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддреЗ рд╣реИрдВред рдкрд╛рдпрдерди 3 рдореЗрдВ рдПрдХ
рдкреИрдерд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдкрдереЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЕрдореВрд░реНрдд рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
from pathlib import Path root = Path('post_sub_folder') print(root)
рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди (3.5+)
рдХреМрди рд╕рд╛ рдмреЗрд╣рддрд░ рд╣реИ - рд╕реНрдерд┐рд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ? рд╢рд╛рдпрдж рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдХрдард┐рди рд╕рд╡рд╛рд▓ рдХрд╛ рдЕрдкрдирд╛ рдЬрд╡рд╛рдм рд╣реИред рдореИрдВ рдЗрд╕реЗ рдкрд╛рдардХ рддрдХ рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдХреИрд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди 3
рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
def sentence_has_animal(sentence: str) -> bool: return "animal" in sentence sentence_has_animal("Donald had a farm without animals")
рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг (3.4+)
рдкрд╛рдпрдерди 3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ,
Enum
рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж,
рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрдВрддреНрд░ред рдЧрдгрдирд╛ рд╕реВрдЪреА рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд▓рдЧрд╛рддрд╛рд░, рдЕрдиреНрдпрдерд╛, рдХреЛрдб рдореЗрдВ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред
from enum import Enum, auto class Monster(Enum): ZOMBIE = auto() WARRIOR = auto() BEAR = auto() print(Monster.ZOMBIE)
рдкрд╛рдпрдерди 3
рдкреНрд░рд▓реЗрдЦрди рд╕реЗ , рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЧрдгрдирд╛ рдЕрджреНрд╡рд┐рддреАрдп, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд╛рдореЛрдВ (рд╕рджрд╕реНрдпреЛрдВ) рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рд╕реВрдЪреА рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЧрдгрдирд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
for monster in Monster: print(monster)
рдирд┐рд░реНрдорд┐рдд LRU рдХреИрд╢ (3.2+)
рдЖрдЬрдХрд▓, рд▓рдЧрднрдЧ рд╕рднреА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рдпрдерди 3 рдмрд╣реБрдд рд╣реА
рд▓реНрд░реВ_рдХреИрд╢ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ LRU рдХреИрд╢рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (
рдХрдо рд╕реЗ рдХрдо рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдиреАрдЪреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдИ рдмрд╛рд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╕рдорд╛рди рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
import time def fib(number: int) -> int: if number == 0: return 0 if number == 1: return 1 return fib(number-1) + fib(number-2) start = time.time() fib(40) print(f'Duration: {time.time() - start}s')
рдЕрдм рд╣рдо рдЗрд╕ рдлрдВрдХреНрд╢рди рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
lru_cache
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рддрдХрдиреАрдХ рдХреЛ
lru_cache
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдирддреАрдЬрддрди, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рдорд╛рдкрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдм рдиреИрдиреЛрд╕реЗрдХрдВрдб рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
from functools import lru_cache @lru_cache(maxsize=512) def fib_memoization(number: int) -> int: if number == 0: return 0 if number == 1: return 1 return fib_memoization(number-1) + fib_memoization(number-2) start = time.time() fib_memoization(40) print(f'Duration: {time.time() - start}s')
рдЕрдиреБрдкрдпреЛрдЧреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреИрдХ рдХрд░рдирд╛ (3.0+)
рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ
рдЕрдирдкреИрдХ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдЙрди рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдирд╛рдо рддрд╛рд░рд╛рдВрдХрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдЬреЛ рдЕрдиреНрдп рдЪрд░ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдРрд╕реЗ рдЪрд░ рдореЗрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
range(5)
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рд╕реВрдЪреА рд╕реЗ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдорд╛рди рдЪрд░
head
рдФрд░
tail
ред рдкрд╣рд▓реА рдФрд░ рдЖрдЦрд┐рд░реА рд╡реИрд▓реНрдпреВ рдХреЗ рдмреАрдЪ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣
body
рд╡реИрд░рд┐рдПрдмрд▓ рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИред
head, *body, tail = range(5) print(head, body, tail)
рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ (3.7+)
рдкрд╛рдпрдерди 3 рдиреЗ
рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рд╢реБрд░реВ
рдХреАрдВ ред рд╡реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐
dataclass
рдбреЗрдХреЛрд░реЗрдЯрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐
__init__()
рдФрд░
__repr__()
ред рд╕рдВрдмрдВрдзрд┐рдд
рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкрд╛рда рдореЗрдВ
, рдЙрдиреНрд╣реЗрдВ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЯреБрдкрд▓реНрд╕ рдирд╛рдо рдХрд╛ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд" рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
dataclass
рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
class Armor: def __init__(self, armor: float, description: str, level: int = 1): self.armor = armor self.level = level self.description = description def power(self) -> float: return self.armor * self.level armor = Armor(5.2, "Common armor.", 2) armor.power()
рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА
dataclass
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛
dataclass
:
from dataclasses import dataclass @dataclass class Armor: armor: float description: str level: int = 1 def power(self) -> float: return self.armor * self.level armor = Armor(5.2, "Common armor.", 2) armor.power()
рдкреИрдХреЗрдЬ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рд╕рдорд░реНрдерди __init__.py рдлрд╝рд╛рдЗрд▓ (3.3+) рдХреЗ рдмрд┐рдирд╛
рдкрд╛рдпрдерди рдХреЛрдб рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛
рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рд╣реИ (рдкреИрдХреЗрдЬ рдЙрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рд░рдЦреЗ рдЧрдП рд╣реИрдВ рдЬрд┐рдирдореЗрдВ
__init__.py
рдлрд╝рд╛рдЗрд▓ рд╣реИ)ред рдпрд╣рд╛рдБ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
sound/ __init__.py sound formats/ __init__.py wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py ... effects/ __init__.py echo.py surround.py reverse.py ... filters/ __init__.py equalizer.py vocoder.py karaoke.py ...
рдкрд╛рдпрдерди 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ
__init__.py
рдлрд╝рд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкрд╛рдпрдерди рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред Python 3 рдореЗрдВ,
Implicit Namespace Package рдлрд╝реАрдЪрд░ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдЗрди рдЬреИрд╕реЗ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
sound/ __init__.py sound formats/ wavread.py wavwrite.py aiffread.py aiffwrite.py auread.py auwrite.py ... effects/ echo.py surround.py reverse.py ... filters/ equalizer.py vocoder.py karaoke.py ...
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП
__init__.py
рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреИрдХреЗрдЬ рдПрдХ рддрдерд╛рдХрдерд┐рдд
рдиреЗрдорд╕реНрдкреЗрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛
рд╣реИ , рдЬрд┐рд╕ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдмрдВрдз рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо
рдкрд╛рдпрдерди 3 рдХреА рд╕рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдорд┐рд▓реЗрдЧрд╛ред
рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реИрдВрдкрд▓ рдХреЛрдб рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдкрд╛рдпрдерди 3 рдХреА рдХреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЖрдк рдпрд╣рд╛рдВ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ?
