рдпрд╣ Rafe Kettler рджреНрд╡рд╛рд░рд╛
рдореИрдиреБрдЕрд▓ рдХреЗ 1.17 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред
рд╕рд╛рдордЧреНрд░реА
- рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
- рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдЖрд░рдВрднреАрдХрд░рдг
- рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдордирдорд╛рдиреА рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдХрд╛рдмреВ рдХрд░рдирд╛
- рдЙрдирдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐
- рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
- рдХрд╕реНрдЯрдо рдХреНрд░рдо рдмрдирд╛рдПрдБ
- рдкреНрд░рддрд┐рдмрд┐рдВрдм
- рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛
- рдкреНрд░рд╕рдВрдЧ рдкреНрд░рдмрдВрдзрдХ
- рд╕рд╛рд░ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
- рднрд╡рди рд╡рд┐рд╡рд░рдгрдХ
- рдирдХрд▓
- рдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЕрдЪрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
- рдирд┐рд╖реНрдХрд░реНрд╖
- рдкрд░рд┐рд╢рд┐рд╖реНрдЯ 1: рдореИрдЬрд┐рдХ рдореЗрдердбреНрд╕ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ
- рдкрд░рд┐рд╢рд┐рд╖реНрдЯ 2: рдкрд╛рдпрдерди 3 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐
рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рдХреНрдпрд╛ рд╣реИрдВ? рд╡реЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкрд╛рдпрдерди рдореЗрдВ рд╣реИрдВред рдпреЗ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ "рдЬрд╛рджреВ" рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рджреЛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
__init__
рдпрд╛
__lt__
)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рдЙрддрдиреЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕рднреА рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рд╕рдВрдЧрдарди рдХреЗ рдмрд┐рдирд╛ред рдЗрд╕рд▓рд┐рдП, рдкрд╛рдпрдерди рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреА рдХрдореА рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдЬреЛ рднреА рдЕрдиреБрднрд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЖрдкреВрд░реНрддрд┐ рдХреА рдЧрдИ рд╣реИред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВрдЧреЗред рдЗрд╕реЗ рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА, рдореЗрдореЛ, рдпрд╛ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдмрд╕ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрдкрд╖реНрдЯ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдЖрд░рдВрднреАрдХрд░рдгред
рд╣рд░ рдХреЛрдИ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рджреВ рд╡рд┐рдзрд┐ рдЬрд╛рдирддрд╛ рд╣реИ,
__init__
ред рдЗрд╕рдХреЗ рд╕рд╛рде, рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдореИрдВ
x = SomeClass()
рд╣реВрдВ, рддреЛ
__init__
рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдкрд╣рд▓реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
__new__
рдореЗрдердб рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░
__del__
рд╡рд┐рдзрд┐ рд╣реИред рдЖрдЗрдП рдЗрди рддреАрди рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
__new__(cls, [...)
рдпрд╣ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ __init__
рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рддрд░реНрдХред __new__
рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдХрдо рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЬрдм рдПрдХ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЯреБрдкрд▓ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдореИрдВ __new__
рдореЗрдВ __new__
рдкрд░ рд░рд╣рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рдмрд╣реБрдд рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
__init__(self, [...)
рдХреНрд▓рд╛рд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ред рдореВрд▓ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдЬрд┐рд╕ рдЪреАрдЬ рдХреЗ рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрд╕реЗ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рд╣рдо x = SomeClass(10, 'foo')
, рддреЛ __init__
рдХреЛ 10
рдФрд░ 'foo'
рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред __init__
рд▓рдЧрднрдЧ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
__del__(self)
рдпрджрд┐ __new__
рдФрд░ __new__
рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ __del__
рдЗрд╕рдХрд╛ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рд╣реИред рдпрд╣ del x
рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХреЛрдб x.__del__()
рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ)ред рдмрд▓реНрдХрд┐, рдпрд╣ рдЙрд╕ рд╕рдордп рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдлрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреИрд╕реЗ рд╕реЙрдХреЗрдЯ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд┐рд╕реА рдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ __del__
рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдм рднреА рдЬреАрд╡рд┐рдд рд░рд╣рддрд╛ рд╣реИ рдЬрдм рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, __del__
рдЕрдЪреНрдЫреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ (рд╣рдореЗрд╢рд╛ рдХрдиреЗрдХреНрд╢рди рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЙрд▓ рдЧрд╛рд░рдВрдЯреА рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, __del__
рдХрд╛ рд▓рдЧрднрдЧ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ рдиреЛрдЯ: svetlov рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд▓реЗрдЦрдХ рдХреЗ рдпрд╣рд╛рдБ рдЧрд▓рддреА рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, __del__
рд╣рдореЗрд╢рд╛ рджреБрднрд╛рд╖рд┐рдП рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде
__del__
, рдпрд╣рд╛рдБ
__del__
рдФрд░
__del__
рдХрд╛ рдЙрджрд╛рд╣рд░рдг
__init__
рдЧрдпрд╛ рд╣реИ:
from os.path import join class FileObject: ''' , , .''' def __init__(self, filepath='~', filename='sample.txt'):
рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдордирдорд╛рдиреА рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдХрд╛рдмреВ рдХрд░рдирд╛
рдкрд╛рдпрдерди рдореЗрдВ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╣рд╛рди рд▓рд╛рднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЖрдзрд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕реБрд╕реНрдд, рдЕрддрд╛рд░реНрдХрд┐рдХ рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЖрдо рдмрд╛рдд рд╣реИ:
if instance.equals(other_instance):
рдмреЗрд╢рдХ, рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рднреНрд░рдо рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдзрд┐ (
__eq__
, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрддрдиреА рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ
рдкрд╛рд╕ рдХреНрдпрд╛
рдерд╛ :
if instance == other_instance:
рдпрд╣ рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдХреА рддрд╛рдХрдд рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рдореЗрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдорд╛рдирдХ рдСрдкрд░реЗрдЯрд░ рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рд╣рдо рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░ рдереЗред
рдЬрд╛рджреБрдИ рддреБрд▓рдирд╛ рдХреЗ рддрд░реАрдХреЗ
рдкрд╛рдпрдерди рдореЗрдВ рдХрдИ рдЬрд╛рджреБрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдЬ рддреБрд▓рдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рди рдХрд┐ рдЕрдирд╛рдбрд╝реА рддрд░реАрдХреЗ рд╕реЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЗ рд╡рд╕реНрддреБрдУрдВ (рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛) рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдЗрди рддрд░реАрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ:
__cmp__(self, other)
рддреБрд▓рдирд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреАред рдпрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рднреА рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ (>, ==; =;, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрд╢рд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдПрдХ рдорд╛рдирджрдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдПрдХ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛)ред __cmp__
рдХреЛ рдПрдХ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрджрд┐ self < other
, рд╢реВрдиреНрдп рдпрджрд┐ self == other
, рдФрд░ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдпрджрд┐ self > other
ред рд▓реЗрдХрд┐рди, рдЖрдорддреМрд░ рдкрд░, рдкреНрд░рддреНрдпреЗрдХ рддреБрд▓рдирд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЖрдк рдЙрди рд╕рднреА рдХреЛ __cmp__
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рд▓реЗрдХрд┐рди __cmp__
рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддреБрд▓рдирд╛ рдПрдХ рд╣реА рдорд╛рдирджрдВрдб рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
__eq__(self, other)
рд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, ==
ред
__ne__(self, other)
рдЕрд╕рдорд╛рдирддрд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ! !=
ред
__lt__(self, other)
рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, <
ред
__gt__(self, other)
рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдзрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, >
ред
__le__(self, other)
рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ <=
рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдХрдоред
__ge__(self, other)
рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ >=
рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╢рдмреНрдж рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╣рдо рд╢рдмреНрдж рдХреА рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ (рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ) рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЕрдиреНрдп рдорд╛рдирджрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╢рдмреНрджрд╛рдВрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд▓рдВрдмрд╛рдИ рдореЗрдВ рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ:
class Word(str): ''' , .''' def __new__(cls, word):
рдЕрдм рд╣рдо рджреЛ
Word
(
Word('foo')
рдФрд░
Word('bar')
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
Word('foo')
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рддреБрд▓рдирд╛ рд▓рдВрдмрд╛рдИ рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ
__eq__
рдФрд░
__ne__
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
Word('foo') == Word('bar')
рдХреЛ рд╕рдЪ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛)ред рд▓рдВрдмрд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреБрд▓реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдорд╛рдирдХ рд╕рдорддреБрд▓реНрдпрддрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛ
str
рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред
рдЕрдм, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рддреБрд▓рдирд╛ рдХреЗ рд╕рднреА рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рддреБрд▓рдирд╛рдУрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреГрдкрдпрд╛ рд╣рдореЗрдВ
functools
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рднреА рддреБрд▓рдирд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛, рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓
__eq__
рдФрд░ рдПрдХ рдФрд░ (
__gt__
,
__lt__
, рдЖрджрд┐) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдкрд╛рдпрдерди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.7 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЖрдк рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВ, рдЖрдк рдмрд╣реБрдд рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдмрдЪрд╛рдПрдВрдЧреЗред рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рд╢реНрд░реЗрдгреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ
@total_ordering
ред
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЬрд╛рджреВ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ
рдЬреИрд╕реЗ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рдПрдЧреА, рдЖрдк рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдУ, рджреЛрд╕реНрддреЛрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВред рдПрдХ рдмреЗрд╣рддрд░ рд╕рдВрдЧрдарди рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЬрд╛рджреВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ 5 рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ: рдПрдХрд░реА рдСрдкрд░реЗрдЯрд░, рд╕рд╛рдзрд╛рд░рдг рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрдЯрд░, рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рдСрдкрд░реЗрдЯрд░ (рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдмрд╛рдж рдореЗрдВ), рдпреМрдЧрд┐рдХ рдХрд╛рд░реНрдп рдФрд░ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдгред
рдЧреИрд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ
рдпреВрдирд┐рд░реА рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрдЪрд╛рд▓рди рд╣реЛрддрд╛ рд╣реИ - рдирд┐рд╖реЗрдз, рдирд┐рд░рдкреЗрдХреНрд╖ рдореВрд▓реНрдп, рдФрд░ рдЗрд╕реА рддрд░рд╣ред
__pos__(self)
+some_object
рдкреНрд▓рд╕ ( +some_object
) рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
__neg__(self)
рдирдХрд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ ( -some_object
)
__abs__(self)
рдПрдмреНрд╕ abs()
рдирд┐рд░реНрдорд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
__invert__(self)
~
рдСрдкрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрдЯреЗ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдкрд░ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рджреЗрдЦреЗрдВред
__round__(self, n)
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд round()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред n
рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЧреЛрд▓ рдХрд░рдирд╛ рд╣реИред
__floor__(self)
math.floor()
рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдирд┐рдХрдЯрддрдо рдЫреЛрдЯреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓рд╛рдИред
__ceil__(self)
math.ceil()
рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛рдиреА рдирд┐рдХрдЯрддрдо рдмрдбрд╝реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЧреЛрд▓рд╛рдИред
__trunc__(self)
math.trunc()
рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдЯреНрд░рд┐рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЖрдо рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рдХ
рдЕрдм рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реНрд╕ (рдФрд░ рдХреБрдЫ рдФрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: +, -, * рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдпред рд╡реЗ, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЦреБрдж рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
__add__(self, other)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ред
__sub__(self, other)
рдШрдЯрд╛рд╡ред
__mul__(self, other)
рдЧреБрдгрдиред
__floordiv__(self, other)
рдЗрдВрдЯреЗрдЧрд░ рдбрд┐рд╡реАрдЬрди, рдСрдкрд░реЗрдЯрд░ //
ред
__div__(self, other)
рд╡рд┐рднрд╛рдЧ, рд╕рдВрдЪрд╛рд▓рдХред
__truediv__(self, other)
рд╕рд╣реА рд╡рд┐рднрд╛рдЬрдиред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм from __future__ import division
ред
__mod__(self, other)
рд╢реЗрд╖ рд╕рдВрдЪрд╛рд▓рдХ %
ред
__divmod__(self, other)
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд divmod()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
__pow__
рд╡рд┐рд╕реНрддрд╛рд░, рдСрдкрд░реЗрдЯрд░ **
ред
__lshift__(self, other)
рдмрд╛рдЗрдирд░реА рдмрд╛рдИрдВ рдкрд╛рд░реА, рдСрдкрд░реЗрдЯрд░ <<
ред
__rshift__(self, other)
рджрд╛рдИрдВ рдУрд░ рдмрд╛рдЗрдирд░реА рд╢рд┐рдлреНрдЯ, рдСрдкрд░реЗрдЯрд░ >>
ред
__and__(self, other)
рдмрд╛рдЗрдирд░реА рдФрд░, &
рдСрдкрд░реЗрдЯрд░ред
__or__(self, other)
рдмрд╛рдЗрдирд░реА рдпрд╛ рдСрдкрд░реЗрдЯрд░ |
ред
__xor__(self, other)
рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕реЛрд░, рдСрдкрд░реЗрдЯрд░ ^
ред
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рдХ
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдХреИрд╕реЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЕрдВрдХрдЧрдгрд┐рдд рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛? рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдмрдбрд╝реА, рдбрд░рд╛рд╡рдиреА рдФрд░ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
some_object + other
рдпрд╣ рдПрдХ "рд╕рд╛рдорд╛рдиреНрдп" рдЬреЛрдбрд╝ рд╣реИред рд╕рдорддреБрд▓реНрдп рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмреАрдЪ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рд╢рдмреНрджреЛрдВ рдХрд╛ рдХреНрд░рдо рд╣реИ:
other + some_object
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпреЗ рд╕рднреА рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рдЕрдкрдиреЗ рдирд┐рдпрдорд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ,
other
рд░реВрдк рдореЗрдВ
other
рд╕рд╛рде рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ
self
ред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЗрд╕рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордХрдХреНрд╖ рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП
__radd__
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ
__radd__
рдЖрдк рдЦреБрдж рдХреЛ
__add__
рдФрд░ рдЙрд╕ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдХреА рд╡рд╕реНрддреБ (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ
other
) рдореЗрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдкрд░рд┐рд╖реНрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
some_object.__radd__
рдХреЗрд╡рд▓ рддрднреА рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐
__add__
other
рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
__radd__(self, other)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкрд░рд╛рд╡рд░реНрддрд┐рддред
__rsub__(self, other)
рдкрд░рд╛рд╡рд░реНрддрди рдШрдЯрд╛рд╡ред
__rmul__(self, other)
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдЧреБрдгрд╛ред
__rfloordiv__(self, other)
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди, рдСрдкрд░реЗрдЯрд░ //
ред
__rdiv__(self, other)
рдкрд░рд╛рд╡рд░реНрддрд┐рдд рдкреНрд░рднрд╛рдЧ, рд╕рдВрдЪрд╛рд▓рдХред
__rtruediv__(self, other)
рд╕рд╣реА рд╡рд┐рднрд╛рдЬрди рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм from __future__ import division
ред
__rmod__(self, other)
рдбрд┐рд╡рд┐рдЬрди рдХрд╛ рд╢реЗрд╖ рднрд╛рдЧ, рдСрдкрд░реЗрдЯрд░ %
ред
__rdivmod__(self, other)
divmod()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм divmod(other, self)
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
__rpow__
рд╕реНрдЯреЗрдкреА, рдСрдкрд░реЗрдЯрд░ **
рд▓рд┐рдП рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдКрдВрдЪрд╛рдИред
__rlshift__(self, other)
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдмрд╛рдЗрдирд░реА рдмрд╛рдИрдВ рдкрд╛рд░реА, рдСрдкрд░реЗрдЯрд░ <<
ред
__rrshift__(self, other)
рд╕рд╣реА, рдСрдкрд░реЗрдЯрд░ >>
рд▓рд┐рдП рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдмрд╛рдЗрдирд░реА рдкрд╛рд░реАред
__rand__(self, other)
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдмрд╛рдЗрдирд░реА рдФрд░, &
рдСрдкрд░реЗрдЯрд░ред
__ror__(self, other)
рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рдмрд╛рдЗрдирд░реА рдпрд╛ рдСрдкрд░реЗрдЯрд░ |
ред
__rxor__(self, other)
рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕реЛрд░, рдСрдкрд░реЗрдЯрд░ ^
ред
рдпреМрдЧрд┐рдХ рдХрд╛рд░реНрдп
рдкрд╛рдпрдерди рдореЗрдВ, рдпреМрдЧрд┐рдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рднреА рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд┐рд╢реНрд░рд┐рдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдпрд╣ "рд╕рд╛рдорд╛рдиреНрдп" рдСрдкрд░реЗрдЯрд░ рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИред рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
x = 5 x += 1
рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдмрд╛рдИрдВ рдУрд░ рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
a += b
,
__iadd__
рдХреЛ
a + b
рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕реЗ
a
рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛)ред рдпрд╣рд╛рдБ рд╕реВрдЪреА рд╣реИ:
__iadd__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯред
__isub__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдШрдЯрд╛рд╡ред
__imul__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЧреБрдгрдиред
__ifloordiv__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ //=
рд╕рд╛рде рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрдиред
__idiv__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ /=
рд╕рд╛рде рдбрд┐рд╡реАрдЬрдиред
__itruediv__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рд╣реА рд╡рд┐рднрд╛рдЬрдиред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ from __future__ import division
ред
__imod_(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдбрд┐рд╡реАрдЬрди рдХрд╛ рдкрд░рд┐рдЪрд╛рд▓рдХ, рдСрдкрд░реЗрдЯрд░ %=
ред
__ipow__
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдкреА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛, рдСрдкрд░реЗрдЯрд░ **=
ред
__ilshift__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдмрд╛рдИрдВ рдкрд╛рд░реА <<=
ред
__irshift__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рд░рд╛рдЗрдЯ рд╢рд┐рдлреНрдЯ >>=
ред
__iand__(self, other)
рдмрд╛рдЗрдирд░реА рдФрд░ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ &=
ред
__ior__(self, other)
рдмрд╛рдЗрдирд░реА рдпрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде |=
|
__ixor__(self, other)
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдСрдкрд░реЗрдЯрд░ ^=
рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдПрдХреНрд╕рд░ ^=
ред
рд░реВрдкрд╛рдВрддрд░рдг рдореИрдЬрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ рд▓рд┐рдЦреЗрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рдпрдерди рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐
float()
ред рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
__int__(self)
рдЗрдВрдЯ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдЯрд╛рдЗрдк рдХрд░реЗрдВред
__long__(self)
рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЯрд╛рдЗрдк рдХрд░реЗрдВред
__float__(self)
рдлреНрд▓реЛрдЯ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдЯрд╛рдЗрдк рдХрд░реЗрдВред
__complex__(self)
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдирд╛ред
__oct__(self)
рдЕрд╖реНрдЯрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкреНрд░рдХрд╛рд░ред
__hex__(self)
рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ред
__index__(self)
рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЛ int рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ (рдкреНрд░рдкрддреНрд░ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ [рдкреНрд░рд╛рд░рдВрдн: рд╕реНрдЯреЙрдк: рд╕реНрдЯреЗрдк])ред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдирдВрдмрд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реВрдЪреА рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ __index__
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
__trunc__(self)
math.trunc(self)
рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреВрд░реНрдгрд╛рдВрдХ рдкреНрд░рдХрд╛рд░ (рдЖрдорддреМрд░ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп) рдореЗрдВ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
__coerce__(self, other)
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдкрд░реЗрдВрдб рдХреЗ рд╕рд╛рде рдЕрдВрдХрдЧрдгрд┐рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ред рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рддреЛ __coerce__
рдХреЛ None
__coerce__
рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдВрднрд╡ рд╣реИ, рддреЛ рдЗрд╕реЗ self
рдФрд░ other
рд╕реЗ рдПрдХ рдЬреЛрдбрд╝реА (2 рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓) рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рддред
рдЙрдирдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдкрд╛рдпрдерди рдореЗрдВ рдХрдИ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╕рдордп рдЗрдирд▓рд╛рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
__str__(self)
рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╣реЗ рдЧрдП str()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
__repr__(self)
рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП repr()
рдХрд╛рд░реНрдп repr()
рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХреЛрдВ рдореЗрдВ str()
рд╕реЗ рдореБрдЦреНрдп рдЕрдВрддрд░ред repr()
рдорд╢реАрди-рдЙрдиреНрдореБрдЦ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╣реИ (рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕реЗ рдЕрдХреНрд╕рд░ рд╡реИрдз рдкрд╛рдпрдерди рдХреЛрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдФрд░ str()
рд▓реЛрдЧреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
__unicode__(self)
unicode()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЖрдкрдХреЗ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред unicode()
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддрд░рд╣ рд╣реИ str()
, рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ str()
рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдиреЗ рдХреЗрд╡рд▓ __unicode__()
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ __str__()
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрдм рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдпреВрдирд┐рдХреЛрдб рдХреА рд╡рд┐рд▓рд╛рд╕рд┐рддрд╛ рди рд╣реЛред
__format__(self, formatstr)
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдирдИ рд╢реИрд▓реА рдХреЗ рддрд╛рд░ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "Hello, {0:abc}!".format(a)
рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ a.__format__("abc")
рдмреБрд▓рд╛рдпрд╛ a.__format__("abc")
ред рдпрд╣ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдЖрдк рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рд░реВрдкрдг рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
__hash__(self)
рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдП рдЧрдП hash()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдЬрд▓реНрджреА рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ __eq__
рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд __eq__
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ: a == b
рдЕрд░реНрде hash(a) == hash(b)
ред
__nonzero__(self)
рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд╣реЗ рдЧрдП bool()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рддреНрдп рдпрд╛ рдЧрд▓рдд рдорд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред
__dir__(self)
рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдмреБрд▓рд╛рдпрд╛ dir()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╡рд╛рдкрд╕ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдЖрдо рддреМрд░ рдкрд░, __dir__
рдкрд░рд┐рднрд╛рд╖рд┐рдд __dir__
рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк __getattr__
рдпрд╛ __getattribute__
(рдЬреЛ рдЖрдк рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗ) рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд __getattr__
, рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
__sizeof__(self)
рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ sys.getsizeof()
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд┐ рдХреЛ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЕрдкрдиреА рд╡рд╕реНрддреБ рдХрд╛ рдЖрдХрд╛рд░ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реИред
рд╣рдо рд▓рдЧрднрдЧ рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдкрд░ рдореИрдиреБрдЕрд▓ рдХреЗ рдЙрдмрд╛рдК (рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд░рд╣рд┐рдд) рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рджреВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
рдХрдИ рд▓реЛрдЧ рдЬреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдЖрдП рдереЗ, рд╡реЗ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд╣реБрдВрдЪ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдЬреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ)ред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ: рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рдЪреАрдЬреЗрдВ, "рдЬрд╛рджреВ" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рдпрдерди рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╕рдВрд╢реЛрдзрдХ рдирд╣реАрдВред рджреЗрдЦреЗрдВ:
__getattr__(self, name)
рдЖрдк рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (рдмрд┐рд▓реНрдХреБрд▓ рдпрд╛ рдЕрднреА рддрдХ)ред рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдЯрд╛рдЗрдкреЛрд╕ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ (рдЖрдк рдЕрднреА рднреА рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдпрд╛ рдЬрдм рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реЛ рддреЛ рдПрдХ AttributeError
рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджреЗрдВред рд╕рдЪ рд╣реИ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХреЗрд╡рд▓ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╡реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
__setattr__(self, name, value)
__getattr__
рд╡рд┐рдкрд░реАрдд, __setattr__
рд╕рдорд╛рдзрд╛рди рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореМрдЬреВрдж рд╣реЛ рдпрд╛ рдирд╣реАрдВред рдпрд╣реА рд╣реИ, рдЖрдк рдорд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдирд┐рдпрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ __setattr__
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмреБрд░реЗ рдорд╛рдорд▓реЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
__delattr__
рдпрд╣ __setattr__
рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЕрдирдВрдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП __setattr__
рдореЗрдВ рднреА рдпрд╣реА рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддреА рдЬрд╛рддреА рд╣реИ ( del self.name
рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ del self.name
рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЕрдирдВрдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрдЧреА)ред
__getattribute__(self, name)
__getattribute__
рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ __setattr__
рдФрд░ __delattr__
рдмреАрдЪ рдЬрдЧрд╣ рд╕реЗ рдмрд╛рд╣рд░ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ __delattr__
ред __getattribute__
рдХреЗрд╡рд▓ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдкрд╛рдпрдерди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд╕рднреА рдХрдХреНрд╖рд╛рдПрдВ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИрдВ, рдФрд░ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдХрдХреНрд╖рд╛ рдХреЛ object
рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред ( , __getattr__(self, name)
). , ( __getattribute__
, ). , , __getattr__
, __getattribute__
AttributeError
. ( , ), , , ( , ) .
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
def __setattr__(self, name, value): self.name = value
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдкрд╛рдпрдерди рдореЗрдВ рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдХреА рд╢рдХреНрддрд┐ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИ, рдФрд░ рдмрдбрд╝реА рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдмрдбрд╝реА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдЖрддреА рд╣реИред рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВредрддреЛ рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦрд╛? рдЙрдиреНрд╣реЗрдВ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡реЗ рдЕрддреНрдпрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЕрддрд╛рд░реНрдХрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдЪреНрдЫрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдВ: рдкрд╛рдпрдерди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреБрд░реА рдЪреАрдЬреЛрдВ рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫреБрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╕рд░реНрд╡реЛрдкрд░рд┐ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ super
, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИ __dict__
): class AccessCounter(object): ''', value . , value.''' def __init__(self, val): super(AccessCounter, self).__setattr__('counter', 0) super(AccessCounter, self).__setattr__('value', val) def __setattr__(self, name, value): if name == 'value': super(AccessCounter, self).__setattr__('counter', self.counter + 1)
рдХрд╕реНрдЯрдо рдХреНрд░рдо рдмрдирд╛рдПрдБ
рдкрд╛рдпрдерди рдореЗрдВ, рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЗрдирд▓рд╛рдЗрди рджреГрд╢реНрдпреЛрдВ (рд╢рдмреНрджрдХреЛрд╢реЛрдВ, рдЯреНрдпреВрдкрд▓реНрд╕, рд╕реВрдЪрд┐рдпреЛрдВ, рддрд╛рд░, рдФрд░ рдЗрд╕реА рддрд░рд╣) рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдпреЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдЬрд╛рджреБрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЬреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рд╕ рдЬрд╛рджреВ рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рдореЗрдЬрдмрд╛рдиреА рдЕрдЪрд╛рдирдХ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рд╣рд░ рддрд░рд╣ рдХреА рдЕрдЪреНрдЫреА рдЪреАрдЬреЛрдВ рдореЗрдВ рд▓рдЧреЗрдВ, рд╣рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛редрдкреНрд░реЛрдЯреЛрдХреЙрд▓
рдЕрдм рдЬрдм рдпрд╣ рдкрд╛рдпрдерди рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рддреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ред рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдЙрди рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдпрдерди рдореЗрдВ, рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рднреА рдЙрдкрдХреГрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдШреЛрд╖рдгрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╡реЗ рд╢рд╛рдпрдж рджрд┐рд╢рд╛-рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВредрд╣рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпреЛрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдЗрдерди рдореЗрдВ рдордирдорд╛рдиреЗ рдХрдВрдЯреЗрдирд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓: рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ __len__
рдФрд░__getitem__
(рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЖрдЧреЗ)ред рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрдВрдЯреЗрдирд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрдВрдЯреЗрдирд░, рдкреНрд▓рд╕ __setitem__
рдФрд░ рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП __delitem__
ред рдФрд░ рдЕрдВрдд рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рд╡рд╕реНрддреБрдПрдВ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ __iter__
рдХреМрди рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд░рд┐рдЯрд░реНрдиред рдЗрд╕ рдЗрдЯрд░реЗрдЯрд░ рдХреЛ рдЗрдЯрд░реЗрдЯрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ __iter__
(рдЦреБрдж рд╣реА рд░рд┐рдЯрд░реНрди) рдФрд░ next
редрдХрдВрдЯреЗрдирд░ рдХрд╛ рдЬрд╛рджреВ
рдЖрдЧреЗ рдХреА рджреЗрд░реА рдХреЗ рдмрд┐рдирд╛, рдпрд╣рд╛рдВ рдХрдВрдЯреЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ:__len__(self)
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ред
__getitem__(self, key)
, self[key]
. . : TypeError
KeyError
.
__setitem__(self, key, value)
, self[nkey] = value
. . , KeyError
TypeError
.
__delitem__(self, key)
( del self[key]
). . , .
__iter__(self)
. , iter()
for x in container:
. __iter__
, self
.
__reversed__(self)
reversed()
. . , .
__contains__(self, item)
__contains__
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рддрддреНрд╡ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ in
рдФрд░ not in
ред рдЖрдк рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЕрдиреБрдХреНрд░рдо рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ рдЬрдм __contains__
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрдерди рдмрд╕ рддрддреНрд╡ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реЗ рдЕрдиреБрдХреНрд░рдо рддрддреНрд╡ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ рдФрд░ True
рдЕрдЧрд░ рдпрд╣ рд╕рд╣реА рдкрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИ ред
__missing__(self, key)
__missing__
рд╕реЗ рд╡рд╛рд░ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ dict
ред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рд╡реЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдПрдХ рдЕрд▓рдВрдХреГрдд рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рд╣реИ d
рдФрд░ рдореИрдВ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ d["george"]
рдЬрдм "george"
рдпрд╣ рд╢рдмреНрджрдХреЛрд╖ рдореЗрдВ рдХреБрдВрдЬреА рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ d.__missing__("george")
)ред
рдЙрджрд╛рд╣рд░рдг
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЗрдП рдПрдХ рд╕реВрдЪреА рджреЗрдЦреЗрдВ рдЬреЛ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рд╛рд╕реНрдХреЗрд▓)ред class FunctionalList: '''- : head, tail, init, last, drop, take.''' def __init__(self, values=None): if values is None: self.values = [] else: self.values = values def __len__(self): return len(self.values) def __getitem__(self, key):
() . , , , ( , ?),
Counter
,
OrderedDict
,
NamedTuple
.
,
isinstance()
issubclass()
, . рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
__instancecheck__(self, instance)
, ( isinstance(instance, class)
, .
__subclasscheck__(self, subclass)
, ( issubclass(subclass, class)
).
рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд╛рднрдХрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд╣реИред рдореИрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рдирд╣реАрдВ рдмрд┐рддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛, рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдкрд╛рдпрдерди рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ: рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрд╡рд╢реНрдпрдХ рднреА рдЗрд╕рдореЗрдВ "рдХреБрдЫ рднреА" рдмрд╣реБрдд рдХрдо рд╣реА рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдпреЗ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдХрднреА рднреА рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдпрд╛рдж рдХрд░рдХреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдХрд┐ рд╡реЗ рд╣реИрдВ (рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣ рдореИрдиреБрдЕрд▓ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ!)редрд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкрд╛рдпрдерди рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИредрдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬрд╛рджреВ рдкрджреНрдзрддрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╡реЗ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдЖрдк рдЙрдиреНрд╣реЗрдВ "рдХреЙрд▓" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдпрд╣ рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЛ рдЗрддрдирд╛ рд╕реБрдЦрдж рдмрдирд╛рддреА рд╣реИред__call__(self, [args...])
рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ x()
рдорддрд▓рдм рдЙрд╕реА рдХреЗ рд╕рдорд╛рди рд╣реИ x.__call__()
ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ __call__
рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддреА рд╣реИ; рдпрд╣реА рд╣реИ, рдЖрдк __call__
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рд╣реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрдИ рддрд░реНрдХ рд╣реИрдВред
__call__
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдЙрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдЙрджрд╛рд╣рд░рдг рдЕрдХреНрд╕рд░ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рддреЗ рд╣реИрдВред рдПрдХ "рдЖрд╣реНрд╡рд╛рди" рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рдЬ рдФрд░ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╡рд┐рдорд╛рди рдкрд░ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реЛрдЧрд╛: class Entity: ''', . "", .''' def __init__(self, size, x, y): self.x, self.y = x, y self.size = size def __call__(self, x, y): ''' .''' self.x, self.y = x, y
рдкреНрд░рд╕рдВрдЧ рдкреНрд░рдмрдВрдзрдХ
Python 2.5 рдореЗрдВ, рдПрдХ рдирдП рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдХреЛрдб, рдПрдХ рдХреАрд╡рд░реНрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ with
ред рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдирдИ рдирд╣реАрдВ рдереА (рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рд▓реЗрдХрд┐рди рдкреАрдИрдкреА 343 рдореЗрдВ рдЗрд╕рдиреЗ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХреАред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рднрд╛рд╡ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ with
: with open('foo.txt') as bar:
рдкреНрд░рд╕рдВрдЧ рдкреНрд░рдмрдВрдзрдХ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдХрдерди рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реЛрдиреЗ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпрд╛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ with
ред рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЛ рдЬрд╛рджреВ рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:__enter__(self)
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдХрдерди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП with
ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╛рдкрд╕реА __enter__
рдореВрд▓реНрдп рд╡рд╣ рдореВрд▓реНрдп рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ with
ред
__exit__(self, exception_type, exception_value, traceback)
, ( ). , , with. , exception_type
, exception_value
, traceback
None
. , ; , , __exit__
True
. , , .
__enter__
рдФрд░ __exit__
рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╕рдорд╛рд╢реЛрдзрди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
class Closer: ''' close with-.''' def __init__(self, obj): self.obj = obj def __enter__(self): return self.obj
Closer
рдПрдлрд╝рдЯреАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдПрдХ рд╕реЙрдХреЗрдЯ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрд░реАрдмреА рддрд░реАрдХрд╛ рд╣реИ): >>> from magicmethods import Closer >>> from ftplib import FTP >>> with Closer(FTP('ftp.somesite.com')) as conn: ... conn.dir() ...
рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рд░реИрдкрд░ рдХреИрд╕реЗ рд╕рд╣реА рдФрд░ рдЧрд▓рдд рджреЛрдиреЛрдВ рддрд░рд╣ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХреЛрдВ рдФрд░ рдЬрд╛рджреВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╢рдХреНрддрд┐ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдорд╛рдирдХ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рд░реЗрдлрд╝реНрд▓рд┐рдм рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ contextlib.closing()
рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд░рддрд╛ рд╣реИ (рдорд╛рдорд▓реЗ рдХреЗ рдХрд┐рд╕реА рднреА рд╣реИрдВрдбрд▓ рдХреЗ рдмрд┐рдирд╛ рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдХреЛрдИ рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИ close()
)редрд╕рд╛рд░ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ
Http://docs.python.org/2/library/abc.html рджреЗрдЦреЗрдВ редрднрд╡рди рд╡рд┐рд╡рд░рдгрдХ
рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░реНрд╕ рдРрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ (рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ, рд╣рдЯрд╛рдиреЗ) рдореЗрдВ рдЕрдкрдирд╛ рддрд░реНрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрд╕реНрдХреНрд░рд┐рдкреНрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдмрд▓реНрдХрд┐, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЙрдирдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рд╣реЛрдВрдЧреЗред рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░реНрд╕ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХрдИ рдХреИрд▓рдХреБрд▓рд╕ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рдХрд┐рд╕реА рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╕рдордп рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ (рдЧреНрд░рд┐рдб рдкрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рд╕реЗ рджреВрд░реА рддрдХ)редрдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд┐рдзрд┐ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП __get__
, __set__
рдпрд╛ __delete__
ред рдЖрдЗрдП рдЗрди рдЬрд╛рджреБрдИ рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:__get__(self, instance, instance_class)
рд╡рд┐рд╡рд░рдгрдХ рд╕реЗ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред instance
рдпрд╣ рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╡рд┐рдзрд┐ рдХрд╣ рд░рд╣рд╛ рд╣реИред owner
рдпрд╣ рд╡рд╕реНрддреБ рдХрд╛ рдкреНрд░рдХрд╛рд░ (рд╡рд░реНрдЧ) рд╣реИред
__set__(self, instance, value)
рдХрд┐рд╕реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗ рдорд╛рди рдмрджрд▓рддреЗ рд╕рдордп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред instance
рдпрд╣ рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╡рд┐рдзрд┐ рдХрд╣ рд░рд╣рд╛ рд╣реИред value
рдпрд╣ рдорд╛рди рд╣реИрдВрдбрд▓ рдкрд░ рд╕реЗрдЯ рд╣реИред
__delete__(self, instance)
рдХрд┐рд╕реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред instance
рдпрд╣ рд╡рд╣ рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реИред
рдЕрдм рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг: рдЗрдХрд╛рдИ рд░реВрдкрд╛рдВрддрд░рдгред class Meter(object): ''' .''' def __init__(self, value=0.0): self.value = float(value) def __get__(self, instance, owner): return self.value def __set__(self, instance, value): self.value = float(value) class Foot(object): ''' .''' def __get__(self, instance, owner): return instance.meter * 3.2808 def __set__(self, instance, value): instance.meter = float(value) / 3.2808 class Distance(object): ''', , .''' meter = Meter() foot = Foot()
рдирдХрд▓
рдкрд╛рдпрдерди рдореЗрдВ, рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдСрдкрд░реЗрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд░рд╕реНрдкрд░ рддрддреНрд╡реЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП, рдХрднреА-рдХрднреА рдкреВрд░реНрдг рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдЖрдк рджреВрд╕рд░реЗ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХреЗрдВред рдпрд╣рд╛рдБ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИ copy
ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рджрд┐рдорд╛рдЧ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдЪрд╛рдирдХ рдЦреБрдж рдХреЛ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдЬрд▓реНрдж рд╣реА рд▓рд┐рдирдХреНрд╕ рд░реЛрдмреЛрдЯ рдкреВрд░реЗ рдЧреНрд░рд╣ рдХреЛ рднрд░ рджреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдкрд╛рдпрдерди рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдмрддрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред__copy__(self)
copy.copy()
. copy.copy()
тАФ , , . , .
__deepcopy__(self, memodict={})
copy.deepcopy()
. copy.deepcopy()
тАФ . memodict
, , . - , copy.deepcopy()
memodict
.
рдЗрди рдЬрд╛рджреВрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ? рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ - рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдЖрдкрдХреЛ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдРрд╕реА рд╡рд╕реНрддреБ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╢рдмреНрджрдХреЛрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╢ (рд╢рд╛рдпрдж рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╢рдмреНрджрдХреЛрд╢) рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реЗ рдХреИрд╢ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рд╛рдЭрд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдЕрдЪрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдЪрд╛рд░ рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдФрд░ рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХреИрд╢рд┐рдВрдЧ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрдиреБрднрд╡ рдФрд░ рднреНрд░рдо рдХрд╛ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реНрд░реЛрдд рднреА рд╣реИредрд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐, рдЗрд╕рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛ ( pickle
), рдЗрд╕рдХреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЕрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рддреЛ рдЫреЛрдбрд╝реЗрдВ)редрд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдРрд╕рд╛ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмрд╛рдж рдореЗрдВ рд╕рд╣реЗрдЬрдирд╛ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рд╕рд╣реА рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдпрд╛ рддреЛ exec()
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдпрд╛ рдкрдврд╝рдХрд░ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдкрд╛рда рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреБрдЫ рдЦрддрд░рдирд╛рдХ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рддрд░рд╣ рд╕реЗ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░: import pickle data = {'foo': [1, 2, 3], 'bar': ('Hello', 'world!'), 'baz': True} jar = open('data.pkl', 'wb') pickle.dump(data, jar)
рдФрд░ рдЕрдм, рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЕрдкрдиреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: import pickle pkl_file = open('data.pkl', 'rb')
рдХреНрдпрд╛ рд╣реБрдЖ?
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред data
рдорд╛рдиреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ рд░рд╣рд╛ рд╣реЛредрдЕрдм, рдереЛрдбрд╝реА рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдЕрдЪрд╛рд░ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рджреБрд░реНрдШрдЯрдирд╛ рдпрд╛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕рдХреА рдлрд╛рдЗрд▓реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд╖рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЕрдЪрд╛рд░ рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкрд╛рдпрдерди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд▓реЛрдЧреЛрдВ рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рди рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдорд╛рдВрдХрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрд╕реНрд╡рдпрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рдиред
рдЕрдЪрд╛рд░ рдореЙрдбреНрдпреВрд▓ рди рдХреЗрд╡рд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣рд░ рдЙрд╕ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдЪрд╛рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЪрд╛рд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдЧрд╛ (рд╕реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рдЧрд╛рдЗрдб рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ):__getinitargs__(self)
рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ рдХреЛ рдбреАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рдж рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдП __init__
, рддреЛ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ __getinitargs__
рдХрд┐рд╕ рддрд░реНрдХ рдХреЛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП __init__
ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреЗ-рд╢реИрд▓реА рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИред
__getnewargs__(self)
рдирдИ-рд╢реИрд▓реА рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ __new__
рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ ред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рднреА рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╡рд╛рдкрд╕реА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП __new__
ред
__getstate__(self)
__dict__
, , . __setstate__
.
__setstate__(self, state)
__setstate__
, , __dict__
. __getstate__
: , , .
__reduce__(self)
( Python's C API), , , . __reduce__()
, . , , , . 2 5 : , , , , , __setstate__
(), () ().
__reduce_ex__(self, protocol)
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬрд╛рдирдирд╛ рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ __reduce__
ред рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ __reduce_ex__
ред рдпрджрд┐ __reduce_ex__
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓ рд╡рд░реАрдпрддрд╛ рдЗрд╕реЗ рджреА рдЬрд╛рддреА рд╣реИ (рдЖрдкрдХреЛ рдЕрднреА рднреА рдЗрд╕реЗ __reduce__
рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП )ред
рдЙрджрд╛рд╣рд░рдг
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕реНрд▓реЗрдЯ рдмреЛрд░реНрдб ( Slate
) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ рдпрд╛рдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдкрд░ рдХреНрдпрд╛ рдФрд░ рдХрдм рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдмреЛрд░реНрдб рд╣рд░ рдмрд╛рд░ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдл рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИред import time class Slate: ''', . .''' def __init__(self, value): self.value = value self.last_change = time.asctime() self.history = {} def change(self, new_value):
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрд╛рдЗрдерди рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЗрд╕реЗ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЛ рдХреБрдЫ рдмрддрд╛рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдирдП рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг, рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓реЗрдЦрди рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓реНрдпрд╡рд╛рди рдЬреНрдЮрд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдордзреНрдп-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдирдП рд╡рд┐рдЪрд╛рд░ рдФрд░ рд░рдгрдиреАрддрд┐рдпрд╛рдБ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдФрд░ рдЖрдкрдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкрд┐рдЯреЛрдирд┐рд╕реНрдЯ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдХреБрдЫ рд╕рдВрднрд╡рддрдГ рднреВрд▓ рдЧрдП рдЬреНрдЮрд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╛ рд╢рд╛рдпрдж рдХреБрдЫ рдирдП рдЯреНрд░рд┐рдХ рдкрд╛рдП рд╣реИрдВред рдЖрдкрдХреЗ рд╕реНрддрд░ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рдкрд╛рдпрдерди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдпрд╛рддреНрд░рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рджреБрдИ рдереА (рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд╕рдХреА)редрдкрд░рд┐рд╢рд┐рд╖реНрдЯ 1: рдореИрдЬрд┐рдХ рдореЗрдердбреНрд╕ рдХреЛ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ
рдЬрд╛рджреВ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╕реАрдзреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ; рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╣рдореЗрд╢рд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдРрдб-рдСрди рдПрдХ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА рд╣реИредрдЬрд╛рджреВ рдХреА рд╡рд┐рдзрд┐ | рдЬрдм рдЗрд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг) | рд╡реНрдпрд╛рдЦреНрдпрд╛ |
---|
__new__(cls [,...]) | instance = MyClass(arg1, arg2) | __new__ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдкрд░ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ |
__init__(self [,...]) | instance = MyClass(arg1, arg2) | __init__ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдкрд░ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛ |
__cmp__(self, other) | self == other , self > other рдЖрджрд┐ | рдХрд┐рд╕реА рднреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред |
__pos__(self) | +self | рдпреВрдиреАрд░реА рдкреНрд▓рд╕ рд╕рд╛рдЗрди |
__neg__(self) | -self | рдПрдХрд╛рдВрдд рдорд╛рдЗрдирд╕ рд╕рд╛рдЗрди |
__invert__(self) | ~self | рдмрд┐рдЯрд╡рд╛рдЗрд╕ рдЙрд▓рдЯрд╛ |
__index__(self) | x[self] | рдЬрдм рдХреЛрдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдХрдиреНрд╡рд░реНрдЯ рдХрд░реЗрдВ |
__nonzero__(self) | bool(self) ред if self: | рд╡рд╕реНрддреБ рдХрд╛ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп |
__getattr__(self, name) | self.name # name | рдХреЛрдИ рднреА рдЕрдЪреВрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ |
__setattr__(self, name, val) | self.name = val | рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ |
__delattr__(self, name) | del self.name | рдЧреБрдг рд╣рдЯрд╛рдПрдВ |
__getattribute__(self, name) | self.name | рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ |
__getitem__(self, key) | self[key] | рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ |
__setitem__(self, key, val) | self[key] = val | рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рдХреЛ рд╕реМрдВрдкрдирд╛ |
__delitem__(self, key) | del self[key] | рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ |
__iter__(self) | for x in self | рдпрд╛рддреНрд░рд╛ |
__contains__(self, value) | value in self ред value not in self | рдХреЗ рд╕рд╛рде рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХрд╛ рд╕рддреНрдпрд╛рдкрди in |
__call__(self [,...]) | self(args) | "рдХреЙрд▓" рдЙрджрд╛рд╣рд░рдг |
__enter__(self) | with self as x: | with рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдСрдкрд░реЗрдЯрд░ |
__exit__(self, exc, val, trace) | with self as x: | with рд╕рдВрджрд░реНрдн рдкреНрд░рдмрдВрдзрдХ рдСрдкрд░реЗрдЯрд░ |
__getstate__(self) | pickle.dump(pkl_file, self) | рдХреНрд░рдордмрджреНрдзрддрд╛ |
__setstate__(self) | data = pickle.load(pkl_file) | рдХреНрд░рдордмрджреНрдзрддрд╛ |
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдЖрдкрдХреЛ рдЬрд╛рджреВ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рдмрдЪрд╛рддреА рд╣реИредрдЕрдиреБрдкреВрд░рдХ 2: рдкрд╛рдпрдерди 3 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
рд╣рдо рдХрдИ рдореБрдЦреНрдп рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ рдЬрдм рдкрд╛рдпрдерди 3 рдЕрдкрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ 2.x рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ:- рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рдпреВрдирд┐рдХреЛрдб рдХреЗ рдмреАрдЪ рдЕрдЬрдЧрд░ 3 рдЕрдВрддрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ,
__unicode__
рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛, рдФрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ __bytes__
(рдЬреЛ рдХреА рддрд░рд╣ рдмрд░реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реИ __str__
рдФрд░ __unicode__
2.7) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдирдП рдирд┐рд░реНрдорд┐рдд рд╕рд░рдгрд┐рдпреЛрдВ рдмрд╛рдЗрдЯ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред - рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди 3 рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдЕрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рд╕рд╣реА рд╡рд┐рднрд╛рдЬрди" рд╣реИ, рдФрд░
__div__
рдирд╣реАрдВред __coerce__
рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдЕрддрд┐рд░реЗрдХ рдФрд░ рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдХрд╛рд░рдгред__cmp__
рдЕрддрд┐рд░реЗрдХ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВред__nonzero__
рдХрд╛ рдирд╛рдо рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ __bool__
редnext
рдпрд╣ iterators рдкрд░ рдерд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдореЗрдВ __next__
ред