2020 рдЖ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд╛рдпрдерди 2 рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ ред рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╢рд╛рдЦрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЕрдкреНрд░реИрд▓ 2020 рдореЗрдВ PyCon US рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд░рд┐рд▓реАрдЬрд╝ 2.7.18 рдХреА рд░рд┐рд▓реАрдЬрд╝, Python 2 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдкреВрд░реНрдг рд╕рдорд╛рдкреНрддрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдЧрд╛ред
рджреВрд╕рд░реА рдУрд░, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╛рдпрдерди 3.8 рдХреА рд░рд┐рд▓реАрдЬ рд╣реБрдИ, рдЬрд┐рд╕рдореЗрдВ рднрд╛рд╖рд╛ рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рд╢рдХреНрдХрд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, Python 3.9 рдХреА рдЕрднреА рддрдХ рдЬрд▓реНрдж рд╣реА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдиреЗ рдЕрдЪрд╛рдирдХ рдкрд╛рдпрдерди 2 рдХрд╛ рддреНрдпрд╛рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ: рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рддреБрд░рдВрдд 3.8 рдкрд░ рд╕рдВрдХреНрд░рдордг рдЖрдкрдХреЛ рднрд╛рд╖рд╛ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рдмрд╕реЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рдЦреИрд░, рдпрд╣ рддрдп рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рдпрдерди 3.8 рдХреЗ рдореБрдЦреНрдп рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИ, рдЬреЛ рд╣рд░ рдкрд╛рдЗрдереЛрдирд┐рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред
1. рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рднрд╛рд╡
рд╡рд╛рд▓рд░рд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЕрдВрджрд░ рдЪрд░ рдХреЛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 3.8 рдХреЗ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдФрд░ рдЪрд░реНрдЪрд┐рдд рд╣реИред
a = 6
рдСрдкрд░реЗрдЯрд░ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рд╕рднреА рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рддрд░рд╣) рдкрд╣рд▓реЗ рдЕрд╡рд╕рд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЬрдм рдЙрдЪрд┐рдд рд╣реЛред
2. рдХреЗрд╡рд▓ рд╕реНрдерд┐рддрд┐ рд╕рдВрдмрдВрдзреА рддрд░реНрдХ
рдХрд╛рд░реНрдп рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕реНрдерд┐рддрд┐ - рд╕реНрдерд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд
- рдирд╛рдо - рдирд╛рдо рд╕реЗ рдкрд╛рд░рд┐рдд
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ, рдП рдФрд░ рдмреА рджреЛрдиреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрдерд┐рддрд┐ рдФрд░ рдирд╛рдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
def my_func(a, b=1): return a+b my_func(5,2)
рдкрд╛рдпрдерди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ / рдФрд░ * рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЗрд╡рд▓ рд╕реНрдерд┐рддреАрдп рдпрд╛ рдХреЗрд╡рд▓ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдмрд╛рдж рд╡рд╛рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдпрдерди 3.8 рд╕реЗ рдкрд╣рд▓реЗ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛)ред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкрд╣рд▓реЗ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ a рдФрд░ b рдХреЗрд╡рд▓ рд╕реНрдерд┐рддреАрдп рд╣реИрдВ, c рдФрд░ d рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рджреЛ e рдФрд░ f рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
def my_func(a, b, /, c, d, *, e, f): return a+b+c+d+e+f my_func(1, 2, 3, 4, 5, 6)
рддрд░реНрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рд╕реАрдорд┐рдд рдХреНрдпреЛрдВ рдХрд░реЗрдВ? рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рдФрд░ рдЕрдиреБрдЪрд┐рдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдерд┐рддрд┐ рд╕рдВрдмрдВрдзреА рддрд░реНрдХреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдмрдВрдз рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рднреА рдмрдЪреЗрдВрдЧреЗред
3. рдПрдл-рд▓рд╛рдЗрдиреНрд╕ 2.0
рдпрд╣ рд╢рдмреНрджреЛрдВ рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди 3.6 рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рдПрдл-рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдкреНрд░рд╛рд░реВрдкрдг рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИред
рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди 3.8 рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред рдЪрд░ рдХрд╛ рдирд╛рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж = рдЪрд┐рд╣реНрди рдЬреЛрдбрд╝рдХрд░, рдЖрдк рдирд╛рдо рдХреЛ рджреЛрд╣рд░рд╛рдП рдмрд┐рдирд╛ рдЙрд╕рдХрд╛ рдирд╛рдо рдФрд░ рдЙрд╕рдХрд╛ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
pi = 3
рдкреНрд░рд┐рдВрдЯ рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдФрд░ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ :)
4. рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХрд╛ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░
рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рдлреЗрд░рдмрджрд▓ рдЕрдм рдЙрд▓рдЯ () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рд╡рд░реНрд╕ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
5. рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдирдпрд╛ importlib.metadata рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреИрдХреЗрдЬ рд╕реЗ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрд╕реНрдХрд░рдг) рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
6. рдЕрдВрдд рдореЗрдВ + рдЬрд╛рд░реА рд░рдЦреЗрдВ
рдкрд╣рд▓реЗ, рдЖрдк рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдХреЗ рдХрд╛рд░рдг рдЕрдВрдд рдореЗрдВ рдЬрд╛рд░реА рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗред рдЕрдм рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
for i in range(2): try: print(i) finally: print('.') continue print(' .')