рд╡рд┐рдХрд╛рд╕рдХреЛ рдПрдХ рд╡рд░реНрд╖ рдкрдЫрд┐, рдкрд╛рдЗрдерди 3.11 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░рд┐рд▓реАрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рд▓рд╛рдИ рдбреЗрдв рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╣рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдердк рд╕рд╛рдвреЗ рддреАрди рд╡рд░реНрд╖рдХрд╛ рд▓рд╛рдЧрд┐ рдХрдордЬреЛрд░реАрд╣рд░реВ рд╣рдЯрд╛рдЙрдирдХрд╛ рд▓рд╛рдЧрд┐ рдлрд┐рдХреНрд╕рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░рд┐рдиреЗрдЫред
рдЙрд╣реА рд╕рдордпрдорд╛, рдкрд╛рдЗрдерди 3.12 рд╢рд╛рдЦрд╛рдХреЛ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реБрд░реБ рднрдпреЛ (рдирдпрд╛рдБ рд╡рд┐рдХрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдЕрдиреБрд╕рд╛рд░, рдЕрдШрд┐рд▓реНрд▓реЛ рд╢рд╛рдЦрд╛рдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рдкрд╛рдБрдЪ рдорд╣рд┐рдирд╛ рдЕрдШрд┐ рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рдХреЛ рдХрд╛рдо рд╕реБрд░реБ рд╣реБрдиреНрдЫ рд░ рдЕрд░реНрдХреЛ рд░рд┐рд▓реАрдЬрдХреЛ рд╕рдордпрдорд╛ рдЕрд▓реНрдлрд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдгрдорд╛ рдкреБрдЧреНрдЫред )ред Python 3.12 рд╢рд╛рдЦрд╛ рд╕рд╛рдд рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬрдорд╛ рд╣реБрдиреЗрдЫ, рдЬрд╕рдХреЛ рдЕрд╡рдзрд┐рдорд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдердкрд┐рдиреЗрдЫ рд░ рдмрдЧрд╣рд░реВ рдлрд┐рдХреНрд╕ рдЧрд░рд┐рдиреЗрдЫред рдпрд╕рдкрдЫрд┐, рдмрд┐рдЯрд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рддреАрди рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдиреЗрдЫ, рдЬрд╕рдорд╛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдердкреНрди рдирд┐рд╖реЗрдз рдЧрд░рд┐рдиреЗрдЫ рд░ рд╕рдмреИ рдзреНрдпрд╛рди рдмрдЧрд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рджрд┐рдЗрдиреЗрдЫред рд░рд┐рд▓рд┐рдЬ рд╣реБрдиреБ рдЕрдШрд┐ рдЕрдиреНрддрд┐рдо рджреБрдИ рдорд╣рд┐рдирд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╢рд╛рдЦрд╛ рд░рд┐рд▓рд┐рдЬ рдЙрдореНрдореЗрджреНрд╡рд╛рд░ рдЪрд░рдгрдорд╛ рд╣реБрдиреЗрдЫ, рдЬрд╕рдорд╛ рдЕрдиреНрддрд┐рдо рд╕реНрдерд┐рд░реАрдХрд░рдг рдЧрд░рд┐рдиреЗрдЫред
Python 3.11 рдорд╛ рдирдпрд╛рдБ рдердкрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН:
- рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рдорд╛ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВрдХреЛ рддреНрд╡рд░рдг рд░ рдЗрдирд▓рд╛рдЗрди рд╡рд┐рд╕реНрддрд╛рд░рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рджреНрд░реБрдд рджреЛрднрд╛рд╖реЗрдХреЛ рдкреНрд░рдпреЛрдЧ (x+x, x*x, xx, a[i], a[i] = z, f(arg) C(arg), o.method(), o.attr = z, *seq), рд╕рд╛рдереИ Cinder рд░ HotPy рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рддрдпрд╛рд░ рдкрд╛рд░рд┐рдПрдХрд╛ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред рд▓реЛрдбрдХреЛ рдкреНрд░рдХрд╛рд░рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ, рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрддрд┐рдорд╛ резреж-ремреж% рд▓реЗ рд╡реГрджреНрдзрд┐ рднрдПрдХреЛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫред рдФрд╕рддрдорд╛, рдкрд╛рдЗрдкрдкрд░рдлреЙрд░реНрдореЗрдиреНрд╕ рдкрд░реАрдХреНрд╖рдг рд╕реБрдЗрдЯ рдкрд╛рд╕ рдЧрд░реНрджрд╛ рдкреНрд░рджрд░реНрд╢рди реирел% рд▓реЗ рдмрдвреНрдпреЛред
рдмрд╛рдЗрдЯрдХреЛрдб рдХреНрдпрд╛рд╕рд┐рдЩ рдореЗрдХрд╛рдирд┐рдЬрдорд▓рд╛рдИ рдкреБрди: рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдЗрдиреНрдЯрд░рдкреНрд░реЗрдЯрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕рдордп резреж-резрел% рд▓реЗ рдШрдЯрд╛рдПрдХреЛ рдЫред рдХреЛрдб рд░ рдмрд╛рдЗрдЯрдХреЛрдб рднрдПрдХрд╛ рд╡рд╕реНрддреБрд╣рд░реВ рдЕрдм рдЗрдиреНрдЯрд░рдкреНрд░реЗрдЯрд░рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ рдХреНрдпрд╛рд╕рдмрд╛рдЯ рдирд┐рдХрд╛рд▓рд┐рдПрдХреЛ рдмрд╛рдЗрдЯрдХреЛрдбрд▓рд╛рдИ рдЕрдирдорд╛рд░реНрд╢рд▓ рдЧрд░реНрдиреЗ рд░ рдЧрддрд┐рд╢реАрд▓ рдореЗрдореЛрд░реАрдорд╛ рдкреНрд▓реЗрд╕рдореЗрдиреНрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдХреЛрдбрдХреЛ рд╕рд╛рде рд╡рд╕реНрддреБрд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдЪрд░рдгрд╣рд░реВ рд╣рдЯрд╛рдЙрди рд╕рдореНрднрд╡ рдмрдирд╛рдПрдХреЛ рдЫред
- рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рд╕рдиреНрджреЗрд╢рд╣рд░реВрдорд╛ рдХрд▓ рдЯреНрд░реЗрд╕рд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрд╛, рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдЕрдм рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫ (рдкрд╣рд┐рд▓реЗ, рд░реЗрдЦрд╛рдХреЛ рдХреБрди рднрд╛рдЧрд▓реЗ рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдпреЛ рднрдиреНрдиреЗ рд╡рд┐рд╡рд░рдг рдмрд┐рдирд╛ рд░реЗрдЦрд╛ рдорд╛рддреНрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ)ред рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯреНрд░реЗрд╕ рдЬрд╛рдирдХрд╛рд░реА API рдорд╛рд░реНрдлрдд рдкрдирд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рд░ codeobject.co_positions() рд╡рд┐рдзрд┐ рд╡рд╛ C API рдкреНрд░рдХрд╛рд░реНрдп PyCode_Addr2Location() рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрд░реЛрдд рдХреЛрдбрдорд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдирдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдмрд╛рдЗрдЯрдХреЛрдб рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдореНрдпрд╛рдк рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпреЛ рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдиреЗрд╕реНрдЯреЗрдб рд╢рдмреНрджрдХреЛрд╢ рд╡рд╕реНрддреБрд╣рд░реВ, рдмрд╣реБ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВ, рд░ рдЬрдЯрд┐рд▓ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд┐рдмрдЧрд┐рдЩ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдзреЗрд░реИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫред рдЯреНрд░реЗрд╕рдмреНрдпрд╛рдХ (рд╕рдмреИрднрдиреНрджрд╛ рд╣рд╛рд▓рдХреЛ рдХрд▓ рдЕрдиреНрддрд┐рдо): рдлрд╛рдЗрд▓ "calculation.py", рд░реЗрдЦрд╛ релрек, рдкрд░рд┐рдгрд╛рдордорд╛ = (x / y / z) * (a / b / c) ~~~~~~^~ ZeroDivisionError: рд╢реВрдиреНрдпрджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрди
- рдЕрдкрд╡рд╛рдж рд╕рдореВрд╣рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдердкрд┐рдПрдХреЛ рд╕рдорд░реНрдерди, рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓рд╛рдИ рдПрдХреИрдЪреЛрдЯрд┐ рдзреЗрд░реИ рдлрд░рдХ рдЕрдкрд╡рд╛рджрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд░ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдирдпрд╛рдБ рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░рд╣рд░реВ ExceptionGroup рд░ BaseExceptionGroup рдзреЗрд░реИ рдЕрдкрд╡рд╛рджрд╣рд░реВрд▓рд╛рдИ рд╕рдореВрд╣рдмрджреНрдз рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдПрдХрд╕рд╛рде рдмреЛрд▓рд╛рдЙрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд░ рд╕рдореВрд╣рдмрд╛рдЯ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдкрд╡рд╛рджрд╣рд░реВ рдЪрдпрди рдЧрд░реНрди "except*" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдердкрд┐рдПрдХреЛ рдЫред
- add_note() рд╡рд┐рдзрд┐ BaseException рдХрдХреНрд╖рд╛рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрдкрд╡рд╛рджрдорд╛ рдкрд╛рда рдиреЛрдЯ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдкрд╡рд╛рдж рдлреНрдпрд╛рдБрдХрд┐рдПрдХреЛ рдмреЗрд▓рд╛ рдЙрдкрд▓рдмреНрдз рдирднрдПрдХреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдердкреНрдиред
- рд╣рд╛рд▓рдХреЛ рдмрдиреНрдж рд╡рд░реНрдЧрд▓рд╛рдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧрд░реНрдиреЗ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░рдХреЛ Self рдердкрд┐рдпреЛред TypeVar рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рднрдиреНрджрд╛ рд╕рд░рд▓ рддрд░рд┐рдХрд╛рд▓реЗ рдпрд╕рдХреЛ рд╡рд░реНрдЧрдХреЛ рдЙрджрд╛рд╣рд░рдг рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐рд╣рд░реВ рдПрдиреЛрдЯреЗрдЯ рдЧрд░реНрди Self рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред class MyLock: def __enter__(self) -> Self: self.lock() return self
- LiteralString рдкреНрд░рдХрд╛рд░рд╕рдБрдЧ рдорд┐рд▓реНрдиреЗ рд╕реНрдЯреНрд░рд┐рдЩ рд▓рд┐рдЯрд░рд▓рд╣рд░реВ рдорд╛рддреНрд░ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХрд┐рдиреЗ рд╡рд┐рд╢реЗрд╖ LiteralString рдкреНрд░рдХрд╛рд░ рдердкрд┐рдпреЛ (рдЕрд░реНрдерд╛рддреН, рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рд░ LiteralString рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ, рддрд░ рдордирдорд╛рдиреА рд╡рд╛ рд╕рдВрдпреБрдХреНрдд str рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рд╣реЛрдЗрдирдиреН)ред LiteralString рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдЩ рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрд╣рд░реВрдХреЛ рдкрд╛рд╕рд┐рдЩрд▓рд╛рдИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╕реАрдорд┐рдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдЬрд╣рд╛рдБ рд╕реНрдЯреНрд░рд┐рдЩ рднрд╛рдЧрд╣рд░реВрдХреЛ рдордирдорд╛рдиреА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирд▓реЗ рдХрдордЬреЛрд░реАрд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, SQL рдХреНрд╡реЗрд░реАрд╣рд░реВ рд╡рд╛ рд╢реЗрд▓ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдмрдирд╛рдЙрдБрджрд╛ред def run_query(sql: LiteralString) -> ... ... def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> None: run_query("SELECT * FROM students") # ok run_query(literal_string) # ok run_query("SELECT * FROM " + literal_string) # ok run_query(arbitrary_string) # рддреНрд░реБрдЯрд┐ run_query( # рддреНрд░реБрдЯрд┐ f┬╗SELECT * FROM students WHERE name = {arbitrary_string}┬╗ )
- TypeVarTuple рдкреНрд░рдХрд╛рд░ рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рднреЗрд░рд┐рдпрдбрд┐рдХ рдЬреЗрдиреЗрд░рд┐рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕рд▓реЗ TypeVar рднрдиреНрджрд╛ рдлрд░рдХ, рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░рд▓рд╛рдИ рдирднрдИ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛рдХрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдореЗрдЯреНрдЫред
- рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ TOML рдврд╛рдБрдЪрд╛ рдкрд╛рд░реНрд╕ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ tommlib рдореЛрдбреНрдпреБрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЫред
- рдЯрд╛рдЗрдк рдЧрд░рд┐рдПрдХрд╛ рд╢рдмреНрджрдХреЛрд╢рд╣рд░реВ (TypedDict) рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрддреНрд╡рд╣рд░реВрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рд░ NotRequired рд▓реЗрдмрд▓рд╣рд░реВрд▓реЗ рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЙрдиреЗ рдХреНрд╖рдорддрд╛ рдЖрд╡рд╢реНрдпрдХ рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ (рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдХреБрд▓ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ False рдорд╛ рд╕реЗрдЯ рдирдЧрд░реЗрд╕рдореНрдо рд╕рдмреИ рдШреЛрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫрдиреН)ред class Movie(TypedDict): title: str year: NotRequired[int] m1: Movie = {┬лtitle┬╗: ┬лBlack Panther┬╗, ┬лyear┬╗: 2018} # OK m2: Movie = {┬лtitle┬╗: ┬лStar Wars┬╗} # OK (рд╡рд░реНрд╖ рдХреНрд╖реЗрддреНрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЫ) m3: Movie = {┬лyear┬╗: 2022} # рддреНрд░реБрдЯрд┐, рдЖрд╡рд╢реНрдпрдХ рд╢реАрд░реНрд╖рдХ рдХреНрд╖реЗрддреНрд░ рднрд░рд┐рдПрдХреЛ рдЫреИрди)
- рдХрд╛рд░реНрдп рд╕рдореВрд╣ рд╡рд░реНрдЧ asyncio рдореЛрдбреНрдпреБрд▓рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдп рд╕рдореВрд╣ рдкреВрд░рд╛ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреЗ рдПрдХ рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рд╕рдиреНрджрд░реНрдн рдкреНрд░рдмрдиреНрдзрдХ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рдХрд╛рд░реНрдпрд╣рд░реВ create_task() рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдореВрд╣рдорд╛ рдердкрд┐рдиреНрдЫрдиреНред async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(тАж)) task2 = tg.create_task(another_coro(тАж)) print(┬лрджреБрдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрдм рдкреВрд░рд╛ рднрдПрдХрд╛ рдЫрдиреНред┬╗)
- @dataclass_transform рд╡рд░реНрдЧ, рд╡рд┐рдзрд┐ рд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрдХреЛрд░реЗрдЯрд░ рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрд╛, рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╡рд╕реНрддреБрд▓рд╛рдИ рдбреЗрдХреЛрд░реЗрдЯрд░ @dataclasses.dataclass рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░реНрджрдЫред рддрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, CustomerModel рд╡рд░реНрдЧрд▓рд╛рдИ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдБрдЪрдХреЛ рд╕рдордпрдорд╛ рдбреЗрдХреЛрд░реЗрдЯрд░ @dataclasses.dataclass рднрдПрдХреЛ рд╡рд░реНрдЧ рдЬрд╕реНрддреИ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрд░рд┐рдиреЗрдЫ, рдЕрд░реНрдерд╛рддреН __init__ рд╡рд┐рдзрд┐ рднрдПрдХреЛрд▓реЗ рдЬрд╕рд▓реЗ рдЪрд░рд╣рд░реВ id рд░ рдирд╛рдорд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред @dataclass_transform() рд╡рд░реНрдЧ ModelBase: тАж рд╡рд░реНрдЧ CustomerModel(ModelBase): id: int name: str
- рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВрд▓реЗ рдЕрдм рдкрд░рдорд╛рдгреБ рд╕рдореВрд╣реАрдХрд░рдг ((?>тАж)) рд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдкрд░рд┐рдорд╛рдгрдХрд░реНрддрд╛рд╣рд░реВ (*+, ++, ?+, {m,n}+) рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред
- sys.path рдорд╛ рд╕рдореНрднрд╛рд╡рд┐рдд рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдлрд╛рдЗрд▓ рдорд╛рд░реНрдЧрд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрд▓рдЧреНрдирддрд╛ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрди "-P" рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рд░ PYTHONSAFEPATH рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдердкрд┐рдпреЛред
- рд╡рд┐рдиреНрдбреЛрдЬ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ py.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, "-V:" рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред / " рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд "- ред "ред
- C API рдорд╛ рдзреЗрд░реИ рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ рдирд┐рдпрдорд┐рдд рд╡рд╛ рд╕реНрдерд┐рд░ рдЗрдирд▓рд╛рдЗрди рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред
- uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, рд░ sunau рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╣рдЯрд╛рдЗрдПрдХрд╛ рдЫрдиреН рд░ Python 3.13 рдорд╛ рд╣рдЯрд╛рдЗрдиреЗрдЫрдиреНред PyUnicode_Encode* рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╣рдЯрд╛рдЗрдПрдХрд╛ рдЫрдиреНред
рд╕реНрд░реЛрдд: opennet.ru
