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

рдЖрдЗрдП рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рддреЗ рд╣реИрдВред 1990-91 рдореЗрдВ рдЕрдЬрдЧрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЬрдм рдЕрдЬрдЧрд░ рдореЗрдВ рдмреЗрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рдерд╛, рддреЛ рдПрдХ рдПрдХрд▓-рдмрд╛рдЗрдЯ, рдЕрдЪреНрдЫреА рдкреБрд░рд╛рдиреА рдПрд╕реНрдХреА рдереАред рд▓реЗрдХрд┐рди, рд▓рдЧрднрдЧ рдЙрд╕реА рд╕рдордп (рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж), рдорд╛рдирд╡рддрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ "рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░" рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдердХ рдЧрдИ рдереА, рдФрд░ 1991 рдореЗрдВ рдпреВрдирд┐рдХреЛрдб рдорд╛рдирдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реА рдмрд╛рд░ рднреА, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рджреЛ-рдмрд╛рдЗрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреА рд╢реБрд░реВрдЖрдд рд╣реБрдИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЬрд▓реНрдж рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рд╕рднреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдПрдХ 4-рдмрд╛рдЗрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рд┐рддреНрд░ рдХреЗ рд▓рд┐рдП 4 рдмрд╛рдЗрдЯреНрд╕ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдФрд░ рдореЗрдореЛрд░реА рдХреА рдмрд░реНрдмрд╛рджреА рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рджреЗрд╢реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдПрдХ рдПрдХрд▓ рдмрд╛рдЗрдЯ ascii рдкрд╣рд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдереАред рдХрдИ рдмреИрд╕рд╛рдЦреА рдХреЛ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2-рдмрд╛рдЗрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рдм рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ "рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░" рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рддрд┐ рдЬреИрд╕рд╛ рдерд╛ред
рд▓реЗрдХрд┐рди 1993 рдореЗрдВ utf-8 рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреЛ рдПрдХ рд╕рдордЭреМрддрд╛ рдерд╛: рдПрд╕рд╕реАрдЖрдИ utf-8 рдХрд╛ рдПрдХ рд╡реИрдз рдЙрдкрд╕рдореВрд╣ рдерд╛, рдЕрдиреНрдп рд╕рднреА рдкрд╛рддреНрд░реЛрдВ рдиреЗ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рд┐рддреНрд░ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рднрд╛рдЧ рд▓реЗрдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдерд╛ рдЬрд┐рд╕реЗ
рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдпреВрдирд┐рдХреЛрдб рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП
рд╢рд╛рд╕рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд, рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╛рдЗрд▓реЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗрдм рдкреЗрдЬ рдЖрдорддреМрд░ рдкрд░ рд╕рд┐рд░реНрдл рдпреВрдПрдл -8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗред
рдЗрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдЕрдЬрдЧрд░ рдХреЛ utf-8 рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдиреНрдп рдПрдиреНрдХрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЕрдЪреНрдЫреА рд╕рдВрдЦреНрдпрд╛ 100 рдХреЗ рд╕рд╛рде
рдкреАрдИрдкреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдерди рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред рдФрд░
PEP-0263 рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред рдПрд╕реНрдХреЛрдбрд┐рдВрдЧ рдЕрднреА рднреА рдмреЗрд╕ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдерд╛, рдпреВрдХреЛ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдХреЛ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрднреА рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рд╖рдВрдб рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдерд╛:
class ы╣Ды╣Фы░е: _ = 2 ╫Р = ы╣Ды╣Фы░е() print(╫Р)
3 рджрд┐рд╕рдВрдмрд░ 2008 рдХреЛ, рдкреВрд░реЗ рдЕрдЬрдЧрд░ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдШрдЯрдирд╛ рд╣реБрдИ (рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рднрд╛рд╖рд╛ рдЕрдм рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдлреИрд▓ рдЧрдИ рд╣реИ, рддрдм, рд╢рд╛рдпрдж, рдкреВрд░реА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП) - рдЕрдЬрдЧрд░ 3 рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдВрдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдИ рдПрдирдХреЛрдбрд┐рдВрдЧ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпреВрдирд┐рдХреЛрдб рдЖрдзрд╛рд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдмрди рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдпрд╛рдж рд╣реИ рдХрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛
рдпреВрдЯреАрдПрдл -8 рдХреА рдмрдбрд╝реА рдЦрд╛рдореА рдпрд╣ рд╣реИ рдХрд┐ рдЪрд░рд┐рддреНрд░ рдХреА рд▓рдВрдмрд╛рдИ рддрдп рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реВрдЪрдХрд╛рдВрдХ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди) рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрддреНрд╡ рдХреА рдСрдлрд╕реЗрдЯ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрдлрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЬрд╛рдирдирд╛; рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд, рдЖрдк рд╡рд░реНрдгреЛрдВ рдореЗрдВ рдЗрд╕рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЕрдЬрдЧрд░ рдореЗрдВ рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, 2- рдФрд░ 4-рдмрд╛рдЗрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдЗрдВрдбреЗрдХреНрд╕ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ - рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ 2 рдпрд╛ 4 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
- рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреА рдЕрдкрдиреА рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдереА, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рдереА
- рдЯреНрд░рд┐рдХреА рд╡рд░реНрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдФрд░ / рдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЬреЛ рджреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ
PEP-393 рдореЗрдВ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рд╕реВрдЪрдХрд╛рдВрдХ рдФрд░ рдЕрдиреНрдп рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдВрдЪ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд░реНрдгреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдиреЗ рд▓рдЧреАред рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рддреЗ рд╕рдордп, рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рднреА рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдЗрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ "рд╕рдмрд╕реЗ рдмрдбрд╝рд╛" рдПрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рдЖрдк рдПрдХ рдПрд╕реНрдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд╡рд░реНрдг рдПрдХрд▓-рдмрд╛рдЗрдЯ рд╣реЛрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд░реНрдг рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╕реЗ, рд╕рднреА рд╡рд░реНрдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ-рдмрд╛рдЗрдЯ рд╣реЛрдВрдЧреЗред рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдкреНрд░рддрд┐ рд╡рд░реНрдг 1, 2, рдФрд░ 4 рдмрд╛рдЗрдЯреНрд╕ред
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ (PyUnicodeObject)
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ :
typedef struct { PyCompactUnicodeObject _base; union { void *any; Py_UCS1 *latin1; Py_UCS2 *ucs2; Py_UCS4 *ucs4; } data; } PyUnicodeObject;
рдмрджрд▓реЗ рдореЗрдВ, PyCompactUnicodeObject
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛
рд╣реИ (рдХреБрдЫ рд╕рд░рд▓реАрдХрд░рдг рдФрд░ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХреА рдЧрдИ):
typedef struct { PyASCIIObject _base; Py_ssize_t utf8_length; char *utf8; Py_ssize_t wstr_length; } PyCompactUnicodeObject; typedef struct { PyObject_HEAD Py_ssize_t length; Py_hash_t hash; struct { unsigned int interned:2; unsigned int kind:3; unsigned int compact:1; unsigned int ascii:1; unsigned int ready:1; unsigned int :24; } state; wchar_t *wstr; } PyASCIIObject;
рдЗрд╕ рдкреНрд░рдХрд╛рд░ 4 рд▓рд╛рдЗрди рдЕрднреНрдпрд╛рд╡реЗрджрди рд╕рдВрднрд╡ рд╣реИрдВ:
- рд╡рд┐рд░рд╛рд╕рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ, рддреИрдпрд╛рд░ рд╣реИ
* structure = PyUnicodeObject structure * : !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or PyUnicode_4BYTE_KIND * compact = 0 * ready = 1 * data.any is not NULL * utf8 data.any utf8_length = length ascii = 1 * utf8_length = 0 utf8 is NULL * wstr with data.any wstr_length = length kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2 or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4 * wstr_length = 0 wstr is NULL
- рд╡рд┐рд░рд╛рд╕рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ, рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ
* structure = PyUnicodeObject * : kind == PyUnicode_WCHAR_KIND * length = 0 (use wstr_length) * hash = -1 * kind = PyUnicode_WCHAR_KIND * compact = 0 * ascii = 0 * ready = 0 * interned = SSTATE_NOT_INTERNED * wstr is not NULL * data.any is NULL * utf8 is NULL * utf8_length = 0
- рдХреЙрдореНрдкреИрдХреНрдЯ ascii
* structure = PyASCIIObject * : PyUnicode_IS_COMPACT_ASCII(op) * kind = PyUnicode_1BYTE_KIND * compact = 1 * ascii = 1 * ready = 1 * (length тАФ utf8 wstr ) * (data ) * ( ascii utf8 string data)
- рд╕рдШрди
* structure = PyCompactUnicodeObject * : PyUnicode_IS_COMPACT(op) && !PyUnicode_IS_ASCII(op) * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or PyUnicode_4BYTE_KIND * compact = 1 * ready = 1 * ascii = 0 * utf8 data * utf8_length = 0 utf8 is NULL * wstr data wstr_length=length kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2 or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_t)=4 * wstr_length = 0 wstr is NULL * (data )
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдЬрдЧрд░ 3 рднреА `рдпреВ` рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
>>> b = u"" >>> b ''
рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдХреЗрд╡рд▓ рдлрд░рд╡рд░реА 2012 рдореЗрдВ рдЕрдЬрдЧрд░ 3.3 рдореЗрдВ
PEP-414 рдореЗрдВ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛрдб рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реА рдЧрдИ рдереА, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдЕрдЬрдЧрд░ 3 рджрд┐рд╕рдВрдмрд░ 2008 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рд╕рдВрдХреНрд░рдордг рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рдореЗрдВ рдирд╣реАрдВ рдерд╛ред
рдЗрд╕ рдЬреНрдЮрд╛рди рдФрд░ рдорд╛рдирдХ ctypes рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреНрд╖реЗрддреНрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
import ctypes import enum import sys class Interned(enum.Enum):
рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ "рддреЛрдбрд╝", рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ
рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред
рдЕрд╕реНрд╡реАрдХрд░рдг: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдкреВрд░реНрддрд┐ рдХреА рд╣реИ, рд▓реЗрдЦрдХ рдХреЛрдИ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдк рдФрд░ рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдорд╛рдирд╕рд┐рдХ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдХреЛрдб рдХреЛ cpython рд╕рдВрд╕реНрдХрд░рдг 3.7 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрд╕реНрдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЛрдб рдХреЛ рдирд┐рдореНрди рдореЗрдВ рдмрджрд▓реЗрдВ:
def make_some_magic(str1, str2): s1 = StrStruct.from_address(id(str1)) s2 = StrStruct.from_address(id(str2)) s2.data = s1.data if __name__ == '__main__': string = "ы╣Ды╣Фы░е" string2 = "h├б─Н" print(string == string2)
рдпреЗ рдЙрджрд╛рд╣рд░рдг
рдкрд╛рдпрдерди 3.6 рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд╖реЗрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкрд╛рдпрдерди рдиреЗ рддреБрд░рдВрдд рддрд╛рд░реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдкрд░ рдирд╣реАрдВ рдЖрдпреЗ:% рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕, рдкреНрд░рд╛рд░реВрдк, рдХреБрдЫ рдкреНрд░рддрд┐
рдЬреИрд╕реЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ рдереА (рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ )ред
рд╢рд╛рдпрдж рдЕрдкрдиреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрджрд▓рд╛рд╡ (рдЕрдЬрдЧрд░ рдХреЗ 3.8 рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ `: =` рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде) рд╕рдмрд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдерд╛ред рдЪрд░реНрдЪрд╛ (рдФрд░ рдирд┐рдВрджрд╛) рджреЛрдиреЛрдВ
рд░реЗрдбрд┐рдЯ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐
рдкреАрдИрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЧрдИ рдереАред рд╕реБрдзрд╛рд░ / рд╕реБрдзрд╛рд░ рдХреЗ рд╡рд┐рдЪрд╛рд░
рдЖрдИ-рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЧрдП рдереЗ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмреЗрд╣рддрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрд╛рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдл-рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЖрджрдд рд╣реЛ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рд╣реЛ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред
рдПрдл-рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдЦрд╝рд╛рд╕рд┐рдпрдд рд╣реИ (рдХрдорд┐рдпрд╛рдВ): рдЖрдк рдЙрдирдореЗрдВ рд╕реНрд▓реЗрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, '\ n' '\ t'ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ f-рд▓рд╛рдЗрди рд╕реЗ рдЧреБрдЬрд╛рд░рддреЗ рд╣реИрдВ, рдЬреЛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдк рдиреЗрд╕реНрдЯреЗрдб рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
>>> number = 2 >>> precision = 3 >>> f"{number:.{precision}f}" 2.000
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЕрдкрдиреЗ рд╣реИрд╢ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛
рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдорд╛рди
рдХрд╛ рдЙрдкрдпреЛрдЧ
рдХрд░рдиреЗ рдХрд╛
рд╕реБрдЭрд╛рд╡ рдерд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░: рдпрджрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╣реИрд╢ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЦ рдХреЗ рд╕рд╛рде рддрд╛рд░ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЕрдзреВрд░рд╛ рд░рд╣ рдЧрдпрд╛ред
рджреЛ рддрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧрд░реНрд╕ рдХреЗ рд╕рдВрдХреЗрдд рдПрдХ рд╣реА рдкрддреЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЪрд░рд┐рддреНрд░-рджрд░-рд╡рд░реНрдг рддреБрд▓рдирд╛ рдпрд╛ рдореЗрдордХреИрдВрдк рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЕрдиреБрдореЗрдп рд╣реИред
int PyUnicode_Compare(PyObject *left, PyObject *right) { if (PyUnicode_Check(left) && PyUnicode_Check(right)) { if (PyUnicode_READY(left) == -1 || PyUnicode_READY(right) == -1) return -1; if (left == right) return 0; return unicode_compare(left, right);
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣реИрд╢ рдорд╛рди рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ cpython рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдирдЬрд░рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдПрдХ рд╣реА рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд╕рднреА рд╕реНрдерд┐рд░рд╛рдВрдХ, рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдлрд╝реАрд▓реНрдб рдФрд░ рдЪрд░, рдФрд░ 20 рд╕реЗ рдХрдо рдХреА рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реА рдЕрд╕рд┐рд╕реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдирдЬрд░рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
if __name__ == '__main__': string = sys.argv[1] string2 = sys.argv[2] print(id(string) == id(string2))
$ python check_interned.py aa True $ python check_interned.py ы╣Ды╣Фы░е ы╣Ды╣Фы░е False $ python check_interned.py aaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaa False
рдФрд░ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдорддреМрд░ рдкрд░ рд╕рд┐рдВрдЧрд▓рдЯрди рд╣реИ
static PyUnicodeObject * _PyUnicode_New(Py_ssize_t length) { PyUnicodeObject *unicode; size_t new_size; if (length == 0 && unicode_empty != NULL) { Py_INCREF(unicode_empty); return (PyUnicodeObject*)unicode_empty; } ... }
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, cpython рдПрдХ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреБрд╢рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред рдЪрд░рд┐рддреНрд░-рджрд░-рд╡рд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдореЗрдореЗрдХреИрдореНрдк, рдореЗрдореНрдкреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рдХрдо рдХрд░рдирд╛ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЧрддрд┐ рджреЗрдирд╛ рд╕рдВрднрд╡ рдерд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди cpython Developers рдиреЗ рдмрд╣реБрдд рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдп рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рднреА рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реИред