рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред рд╕реА ++ рдХреЗ рдЕрдВрддрд┐рдо рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди рдореЗрдВ рд╢реБрд░реБрдЖрдд ред рднрд╛рдЧ 1/2 тАЭред
рдЪрд░ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
рдЕрдм рдЬрдм рд╣рдо рдЕрдВрддрддрдГ рдЧрдгрд┐рдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдЪрд░ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
C ++ рдореЗрдВ, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ: рд╕реНрдЯреИрдХ рдкрд░ рд░рдЦреЗ рдЧрдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдорд╛рди рд░рдЦреЗрдВ, рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХ рдкрд░ рд░рдЦреЗрдВред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╣реИрдВ?
рдмреЗрд╢рдХ, рд╣рдо рд╣рдореЗрд╢рд╛ рдХреЗрд╡рд▓ рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмрдбрд╝реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╕реНрдЯреИрдХ рдкрд░ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрдВрдЧреА, рдпрд╛ рд╕реНрдЯреИрдХ рдкрд░ рдЙрдирдХреЗ рдирд┐рд░рдВрддрд░ рдЖрдВрджреЛрд▓рди рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдореЗрдВ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рднрд╛рд╖рд╛ рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдЧрд╛ред
рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
a = 3
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рдореЗрдореЛрд░реА (рддрдерд╛рдХрдерд┐рдд "рд╣реАрдк") рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ "3" рдмрдирд╛рдпрд╛ рдФрд░ рдирд╛рдо "рдП" рдХреЛ рдЗрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рдпрд╛ред рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐
b = a
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдордиреЗ рдЪрд░ "рдмреА" рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рдЙрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ "рдП" рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдкреЙрдЗрдВрдЯрд░ рдХреА рдирдХрд▓ рдХреАред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЕрдкрдиреА рднрд╛рд╖рд╛ рдореЗрдВ рдХрд┐рддрдиреЗ рд╕реВрдЪреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдмреЗрд╢рдХ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреЗрдд рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ! рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реНрдгрд╛рдВрдХ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рдЕрдиреНрдп рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХреБрдЫ рднреА - рдЖрдЦрд┐рд░рдХрд╛рд░, рдпреЗ рд╕рдВрдХреЗрдд рд╣реИрдВред
рд╣рдореЗрдВ рдХрд┐рддрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реИрд╢ рдЯреЗрдмрд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? (рдкрд╛рдпрдерди рдореЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ "рд╢рдмреНрджрдХреЛрд╢" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - dict
ред) рдПрдХ! рдорд╛рдиреЛрдВ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд┐рдВрджреБрдУрдВ рд╕реЗ рдЗрд╕реЗ рд╕рдВрдмрджреНрдз рдХрд░рдиреЗ рджреЗрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдЕрдкрдиреА рднрд╛рд╖рд╛ рдореЗрдВ C ++ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди - рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕рднреА рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣рдореЗрд╢рд╛ рдкреЙрдЗрдВрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЦреБрдж рдХреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ: рдиреНрдпреВрдордкреА рдЬреИрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╡реЗ рдлреЛрд░рдЯреНрд░рд╛рди рдореЗрдВ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рдХрд╛ рдЖрдзрд╛рд░ - "a = 3" рдЬреИрд╕реЗ рднрд╛рд╡ - рд╣рдореЗрд╢рд╛ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
"рд╕рдм рдХреБрдЫ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ" рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рднреА рд╕реАрдорд╛ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдмрд╕ рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╢рдмреНрджрдХреЛрд╢ рдбрд╛рд▓реЗрдВ! рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╕рдм рдХреБрдЫ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдо рдпреМрдЧрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдХреБрдВрдЬреА рдХрд╛ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдореВрд▓реНрдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреИрд╕реЗ рдХрд░реЗрдВ? рд╕реВрдЪрд┐рдпрд╛рдБ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдХреНрд╖рдорддрд╛ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕реВрдЪреА рдХреА рддрд░рд╣, рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╣реИ, рд▓реЗрдХрд┐рди, рдПрдХ рд╕реВрдЪреА рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХреНрд░рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЯреБрдкрд▓ рдпрд╛ tuple
(рдЙрдЪреНрдЪрд╛рд░рдг "рдЯрдкрд▓" рдпрд╛ "рдЯреБрдкрд▓") рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ рдЯреНрдпреВрдкрд▓реНрд╕ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрдЯрдХрдерд╛ рднрд╛рд╖рд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рд╕рдВрднрд╡рддрдГ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЧрдВрднреАрд░ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╣реИрд╢ рдЯреЗрдмрд▓ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рддрд╛рд░ рдпрд╛ рдХреЗрд╡рд▓ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЯреНрдпреВрдкрд▓реНрд╕ рд╣рдореЗрдВ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХрдИ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ C рдФрд░ C ++ рдореЗрдВ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░ рдореЗрдВ рдЯреНрдпреВрдкрд▓реНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдкрдиреНрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
def get_address(): ... return host, port host, port = get_address()
рдЕрдирдкреИрдХрд┐рдВрдЧ рдХреЗ рдХрдИ рдЙрдкрдпреЛрдЧреА рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ рдорд╛рдиреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
x, y = y, x
рд╕рдм рдХреБрдЫ рдПрдХ рд╕реВрдЪрдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк "рдж рдЧреИрдВрдЧ рдСрдлрд╝ рдлреЛрд░" рдХреА рдкреБрд╕реНрддрдХ "рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди" рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рд╛рдордХ рддрд░реАрдХреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓, рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ! рдкрд╛рдпрдерди рдореЗрдВ, рдпреЗ рд╕рднреА рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рд▓рд┐рдВрдХ рд╣реИрдВ, рдФрд░ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВред рдпрд╣ рдХрд╛рд░реНрдп рдХреЛ рд╕реАрдорд╛ рддрдХ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдбреЗрд╡рд┐рдб рд╡реНрд╣реАрд▓рд░ рдиреЗ рдХрд╣рд╛: "рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдХреЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд╕рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред" рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖рддрд╛ рдХрд╛ рд╕реНрддрд░ рд╣реИ рдЬреЛ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ C ++ рд╕рд╣рд┐рдд рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрдерди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ, рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдПрдХ рдХрдбрд╝реА рд╣реИ, рддреЛ рдпреЗ рд▓рд┐рдВрдХ рдХрд┐рд╕ рдЪреАрдЬ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ? C ++ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдЗрдП рдкрд╛рдпрдерди рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЫреЛрдбрд╝реЗрдВ - рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ! рдкреНрд░рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рд╣рд┐рд▓рд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреНрдп рд╕рднреА рдкреНрд░рдХрд╛рд░ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реИрдВ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рднрд╛рд╖рд╛ рдХреА рдПрдХрд░реВрдкрддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдореЛрд░реА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (PyPy, Jython, рдпрд╛ MicroPython) рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдореЗрдореЛрд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рдорд╛рдирд╕рд┐рдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд╕рд╛рджрдЧреА рдФрд░ рдПрдХрд░реВрдкрддрд╛ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдкреАрдереЙрди рдореЗрдВ рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо python.org рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
struct { struct _typeobject *ob_type; }
рд╣рдо рд╕реАрдкреАрдереЙрди рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЬреЛ рджреЗрдЦреЗрдВрдЧреЗ, рд╡рд╣ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рджрд┐рдП рдЧрдП рдЪрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХ рдкреЗрд▓реЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЪрд░ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЬрд╛рдирдХрд╛рд░реА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ? рдЖрдЗрдП рдлрд┐рд░ рд╕реЗ рд╕реАрдкреАрдереЙрди рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░реЗрдВред
struct _typeobject { getattrfunc tp_getattr; setattrfunc tp_setattr; newfunc tp_new; freefunc tp_free; binaryfunc nb_add; binaryfunc nb_subtract; richcmpfunc tp_richcompare; }
рд╣рдо рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИрдВ: рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШрдЯрд╛рд╡, рддреБрд▓рдирд╛, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ, рдЕрдиреБрдХреНрд░рдордг, рд╕реНрд▓рд╛рдЗрд╕рд┐рдВрдЧ, рдЖрджрд┐ред рдпреЗ рдСрдкрд░реЗрд╢рди рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд┐рдд рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЬрд╛рдирдХрд╛рд░реА рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХреЗ рдиреАрдЪреЗ, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдорд┐рдд рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреВрд░реНрдгрд╛рдВрдХ, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдпрд╛ рд╡рд╕реНрддреБ рд╣реЛред
рдпрд╣ C рдФрд░ C ++ рд╕реЗ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╛рдореЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИ, рди рдХрд┐ рдЪрд░ рдХреЗ рдорд╛рди рд╕реЗред рдкрд╛рдпрдерди рдореЗрдВ, рд╕рднреА рдирд╛рдо рд▓рд┐рдВрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдореВрд▓реНрдп, рдмрджрд▓реЗ рдореЗрдВ, рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИред рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рд╛рд░ рд╣реИред
рднрд╛рд╖рд╛ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдкрд░ рджреЛ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдирдХрд▓ рд╣реИред рдЬрдм рд╣рдо рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓, рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдПрдХ рд╕реНрд▓реЙрдЯ, рдпрд╛ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд▓рд┐рдВрдХ рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╕рд░рд▓, рддреЗрдЬ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рд╣реИ: рд▓рд┐рдВрдХ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред
рджреВрд╕рд░рд╛ рдСрдкрд░реЗрд╢рди рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рд╡рд┐рдзрд┐ рдХреЙрд▓ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛, рдПрдХ рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрди рд╕рдХрддрд╛ рд╣реИред
рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рд╢реНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдпрджрд┐ рд╕рднреА рдЪрд░ рдореЗрдВ рд╕рдВрджрд░реНрдн рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреА рд░рдХреНрд╖рд╛ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
n = 3 some_function(n)
рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдпрдерди рдореЗрдВ рд╕рд░рд▓ рдкреНрд░рдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ: рд╡реЗ рдмрд╕ рдЙрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп (рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп) int
, float
, tuple
рдпрд╛ str
рдХреЛ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ "рд╕рдм рдХреБрдЫ рдПрдХ рд╕реВрдЪрдХ рд╣реИ" рд╕рдорд╛рди рдЕрд░реНрде рдкреНрд░рднрд╛рд╡ рд╣реИ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЪрд░ рд╕реА рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдПрдХреАрдХреГрдд рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдпрд╛ рдЬреЗрдирд░рд┐рдХ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВ, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛред рдлрд╝рдВрдХреНрд╢рди min()
, max()
, sum()
рдФрд░ рдЬреИрд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рд╡реЗ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ min()
рдФрд░ max()
рд▓рд┐рдП рддреБрд▓рдирд╛ рд╕рдВрдЪрд╛рд▓рди, sum()
рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрдзрди sum()
, рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ
рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рдкрд╛рдпрд╛ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдм рд╣рдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗред рдпрд╣ рднрд╛рд╖рд╛ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред C ++ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рддреАрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд, рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ:
my_class c(arg);
new
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
my_class *c = new my_class(arg);
- рдлреИрдХреНрдЯрд░реА, рдПрдХ рдордирдорд╛рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рдХреЗ рдЬреЛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:
my_class *c = my_factory(arg);
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдкрд╛рдпрдерди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рд╕реЛрдЪрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реБрдП, рдЕрдм рд╣рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ред
рдЙрд╕реА рдкреБрд╕реНрддрдХ рдж рдЧреИрдВрдЧреНрд╕ рдСрдл рдлреЛрд░ рд╕реЗ рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рд╕рдмрд╕реЗ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХрддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд┐рдзрд┐ рдЗрд╕ рдорд╛рдпрдиреЗ рдореЗрдВ рдЕрдЪреНрдЫреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рд╣реИ, рдФрд░ рдПрдХ рдХрд╛рд░рдЦрд╛рдирд╛ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдирд┐рдпрдо рдпрд╣ рд╣реИ: рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░рдЦрд╛рдирд╛ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд, рдХрд╕реНрдЯрдо рдХрд╛рд░рдЦрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рдпрд╛ рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗ, рдмреЗрд╢рдХ), рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рдорд╛рдиреНрдп рд░рд╣реЗрдЧрд╛:
рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЙрд▓ рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рднрд╛рд╖рд╛ рдХреЗ рдХреЗрд╡рд▓ рдореВрд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдХреЛрдИ рд╣реЗрд░рдлреЗрд░, рдЬреИрд╕реЗ рдХрд┐ "рдПрд░рд┐рдирд╛" рдпрд╛ "рдЕрдиреБрдХреВрд▓реА" рдкреИрдЯрд░реНрди, рдХреЛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ C ++ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдФрд░ рдорд╣рд╛рди рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ new
рдСрдмреНрдЬреЗрдХреНрдЯ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ spawningред
NULL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?
рдПрдХ рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдЖ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо NULL рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХ рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдкреЙрдЗрдВрдЯрд░реНрд╕ рдкрд░ рджреЛ рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрд╛рдд рдХреА рдереА, рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЪрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рддреНрд░реБрдЯрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рддреНрд░реБрдЯрд┐ рдпрд╛ рдмрдлрд░ рд╕реАрдорд╛ рд╕реЗ рдмрд╛рд╣рд░ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрдХреНрд░рдо рджреЛ рд╕рдмрд╕реЗ рдЦрддрд░рдирд╛рдХ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдкрд┐рдЫрд▓реЗ 20 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЦрддрд░рд╛ рджреЗрддреЗ рд╣реИрдВред
рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ: "рдЕрдЧрд░ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрд░рдЪрдирд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рдерд╛, рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рддрд░реАрдХреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдПрдВ рдХреИрд╕реЗ рдмрдирд╛рдПрдВрдЧреЗ?"
рдЬрд╛рджреВ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдХрд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдореЗрдВ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ "рддреИрдпрд╛рд░реА" рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
struct _typeobject { getattrfunc tr_getattr; setattrfunc tr_setattr; newfunc tp_new; }
tp_new()
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ tp_new()
рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИред tp_getattr()
рдЗрд╕ рд╣реИрд╢ рдЯреЗрдмрд▓ рд╕реЗ рдХреБрдЫ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ tp_setattr()
, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡рд╣рд╛рдБ рдХреБрдЫ рдбрд╛рд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдХреНрд╖рдорддрд╛ рд╕реА рднрд╛рд╖рд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИ - рдПрдХ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ред (рдмреЗрд╢рдХ, рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рдеред)
рдкрд╣реБрдБрдЪ рд╕рдВрд╢реЛрдзрдХ
рд╣рдо рдЙрди рд╕рднреА рдирд┐рдпрдореЛрдВ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ C ++ рдХреАрд╡рд░реНрдб рдХреЗ рдЖрд╕рдкрд╛рд╕ private
рдФрд░ protected
? рдкрд╛рдпрдерди, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдЙрдиреНрд╣реЗрдВ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд╛рд╖рд╛ рдХреЗ "рд╕рдВрд░рдХреНрд╖рд┐рдд" рднрд╛рдЧ рд╣реИрдВ - рдпреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд╛рдпрдерди рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд┐рдЯреНрд╕ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП! рднрд╛рд╖рд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдпрд╣ рд╕реНрддрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рдо, рдкрд╛рдпрдерди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдЪреНрдЫрд╛ рдмрд╣рд╛рдирд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдПрдХ рд╕рд╣рдпреЛрдЧреА рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ ( _
) рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдХреЗ рдмрд╛рдХреА рд▓реЛрдЧреЛрдВ рдиреЗ 90 рдХреЗ рджрд╢рдХ рдХреЗ рд╢реБрд░реБрдЖрддреА рджрд┐рдиреЛрдВ рдХреЗ рд╕рдмрдХ рд╕реАрдЦреЗ: рдХрдИрдпреЛрдВ рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрдерд╛ рдХрд┐ рдореБрдЦреНрдп рдХрд╛рд░рдг рдЬреЛ рд╣рдо рдлреВрд▓рд╛ рд╣реБрдЖ, рдмрд┐рдирд╛ рдкрдврд╝реЗ рд▓рд┐рдЦреЗ рдФрд░ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╡рд╣ рдирд┐рдЬреА рдЪрд░реЛрдВ рдХреА рдХрдореА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ 20 рд╡рд░реНрд╖реЛрдВ рдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╕рднреА рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд┐рдпрд╛ рд╣реИ: рдирд┐рдЬреА рдЪрд░ рдХреЗрд╡рд▓ рдкреНрд░рдлреБрд▓реНрд▓рд┐рдд рдФрд░ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдЙрдкрд╛рдп рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдкрд╛рдпрдерди рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдирд┐рдЬреА рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЗ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реБрдПред
рдореЗрдореЛрд░реА рдкреНрд░рдмрдВрдзрди
рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рд╣рдорд╛рд░реА рд╡рд╕реНрддреБрдУрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рддрд╛рд░реЛрдВ рдХрд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреИрд╕реЗ рд╕реАрдкреАрдереЙрди рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЭрд╛ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╡реЗ рдХрдм рдФрд░ рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдирд╖реНрдЯ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ?
рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп, рдЕрдиреБрдорд╛рдирд┐рдд рдФрд░ рдЙрддреНрдкрд╛рджрдХ рддрд░реАрдХрд╛ рдЪреБрдирд╛: рд╕реА-рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рддрд░рдл рд╕реЗ, рд╣рдорд╛рд░реЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╣реИрдВ ред
рдЗрд╕ рдЬреНрдЮрд╛рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ "рдЪрд░ рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬрд╛рдВрдЪ рдХреА рдереАрдВ, рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
struct { Py_ssize_t ob_refcnt; struct { struct _typeobject *ob_type; } }
рдЗрд╕рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рд╣рд░ рд╡рд╕реНрддреБ (рд╣рдорд╛рд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ CPython рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ) рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд▓рд┐рдВрдХ рдЧрдгрдирд╛ рддрдВрддреНрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрдгрдирд╛ рдпрд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рддреБрд░рдВрдд рдирд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЙрдЪреНрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдиреАрдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдЕрдХреНрд╕рд░, рдореЗрдореЛрд░реА рдХреЛ рдлрд╝реНрд░реА рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдирд╖реНрдЯ рдХреА рдЧрдИ рд╡рд╕реНрддреБ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╢ рдореЗрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдирдИ рдмрдирд╛рдИ рдЧрдИ рд╡рд╕реНрддреБ рдХреИрд╢ рдореЗрдВ рдмрдиреА рд░рд╣реЗрдЧреАред рдпреЗ рджреЛ рдХрд╛рд░рдХ - рд╕рд╛рджрдЧреА рдФрд░ рд╕реНрдерд╛рдиреАрдпрддрд╛ - рд▓рд┐рдВрдХ рдХреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрддреНрдкрд╛рджрдХ рддрд░реАрдХрд╛ рдорд╛рдирддреЗ рд╣реИрдВред
(рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдХреНрд╕рд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдВрджрд░реНрдн рдХрд╛рдЙрдВрдЯрд░ рддрдм рднреА рд╢реВрдиреНрдп рддрдХ рдирд╣реАрдВ рдЧрд┐рд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕реАрдкреАрдереЙрди рдореЗрдВ рдПрдХ рджреВрд╕рд░рд╛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рддрдВрддреНрд░ рднреА рд╣реИ - рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдПрдХ, рдЖрдзрд╛рд░рд┐рдд рд╣реИред рд╡рд╕реНрддреБрдУрдВ рдХреА рдкреАрдврд╝рд┐рдпреЛрдВ рдкрд░ред - рд▓рдЧрднрдЧ рдЕрдиреБрд╡рд╛рджред )
рдЕрдЬрдЧрд░ рдбреЗрд╡рд▓рдкрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ
рд╣рдордиреЗ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рд░рд▓ рд╣реЛ, рд▓реЗрдХрд┐рди рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реНрдпрд╛рдкреНрдд рдЖрдХрд░реНрд╖рдХ рд╣реЛред рдЙрд╕реА рд╕рдордп, рд╣рдо рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдереЗ рдЬреЛ рд╣рдордиреЗ рдЦреБрдж рдмрдирд╛рдП рдереЗред
рдкрд╛рдпрдерди 2, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╕реЛрдЪ рдХреА рдЬрдбрд╝рддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХреНрдпреЛрдВрдХрд┐ рдХрдордЬреЛрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╡рд╛рд▓реА рднрд╛рд╖рд╛ рдРрд╕рд╛ рдХрд░реЗрдЧреАред рдпрджрд┐ рдЖрдк рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рдХреЛрдб рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпреВрдирд┐рдХреЛрдб рдХреЛ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ:
>>> 'byte string ' + u'unicode string' u'byte string unicode string'
рдирддреАрдЬрддрди, рдХреБрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдиреЗ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрдмрдХрд┐ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рдереЗ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╡рд░реНрдгрдорд╛рд▓рд╛ рдХреЗ рдкрд╛рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреНрд░рд┐рдкреНрдЯрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ред
рдкрд╛рдпрдерди 3 рдореЗрдВ рдпрд╣ рднрд╛рд╖рд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдЧ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
>>> b'byte string ' + u'unicode string' TypeError: can't concat bytes to str
рдкрд╛рдпрдерди 2 рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдЕрддреБрд▓рдиреАрдп рддрддреНрд╡реЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ "рднреЛрд▓реЗ" рдЫрд╛рдБрдЯрдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереА:
>>> sorted(['b', 1, 'a', 2]) [1, 2, 'a', 'b']
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рдпрдерди 3 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреБрдЫ рд╕рд╛рд░реНрдердХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ:
>>> sorted(['b', 1, 'a', 2]) TypeError: unorderable types: int() < str()
рд╣рдирди
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдм рдФрд░ рдлрд┐рд░ рдХрднреА-рдХрднреА рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХреА рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, 90 рдХреЗ рджрд╢рдХ рдореЗрдВ, рдЬрдм рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЛ рдЕрднреА рддрдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ:
class Address(object): def __init__(self, host, port): self.host = host self.port = port
"рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ!" - рдХреБрдЫ рдиреЗ рдХрд╣рд╛, "рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдкреЛрд░реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ? рд╡реИрд╕реЗ рднреА, рд╣рдо рдЗрд╕рдХреЗ рднрдВрдбрд╛рд░рдг рдкрд░ рдПрдХ рдкреВрд░реА рдХрдХреНрд╖рд╛ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ! " рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ
class Address(object): def __init__(self, host, port=None): self.host = host if port is not None:
рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рдЬреЛ рдХрд┐, рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╣реАрдВ! рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд╣реАрдВ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВ:
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, hasattr()
, isinstance()
рдФрд░ рдЕрдиреНрдп рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг рдХреА рдкреНрд░рдЪреБрд░рддрд╛ рдЦрд░рд╛рдм рдХреЛрдб рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдХреЗрдд рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореМрдЬреВрдж рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдПрдХ рд╕рд░рд▓ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
рддреЛ, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдФрд░ рд╣рдЯрд╛рдП рдЧрдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрддреА рдкреНрд░рдпреЛрдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП, рдФрд░ рдЕрдм рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╕реА ++ рдореЗрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╛рдпрдерди рдХреА рдПрдХ рдФрд░ рдмреБрд░реА рдЖрджрдд рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдереА рдЬрд┐рд╕рдореЗрдВ рдПрдХ рддрд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рд░ рдмрд╛рд░ рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЙрд╕реЗ рдПрдХ рд╣реА рд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо:
class Dataframe(object): def __init__(self, columns): if isinstance(columns, str): columns = columns.split(',') self.columns = columns
рд▓реЗрдХрд┐рди рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╕рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЧрд▓рддреА рд╕реЗ рд╣рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрддрдВрдн рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ? рдпрд╛ рдпрджрд┐ рд╕реНрддрдВрдн рдирд╛рдо рдореЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛, рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ: рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рд╣рдо рдЬрд┐рди рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХрд╡рд░реЗрдЬ рдЕрднреА рднреА 100% рд╣реЛрдЧреА, рдФрд░ рд╣рдо рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдирддреАрдЬрддрди, рд╣рдо рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рдХрд┐ рдкрд╛рдпрдерди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рд╕реА: рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рддрд░реНрдХ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ eval()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдЧрд▓рдд рдЕрдиреБрдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдиреЗ рдЕрднреА рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВред тИТ , Jupyter notebook - тИТ eval()
, Python ! , C++ .
, ( getattr()
, hasattr()
, isinstance()
) . , , , , : , , , !
: , . 20 , C++ Python. , , . .
, shared_ptr
TensorFlow 2016 2018 .
TensorFlow тИТ C++-, Python- ( C++ тИТ TensorFlow, ).

TensorFlow, shared_ptr
, . , .
C++? . , ? , , C++ Python!