рдкреБрд╕реНрддрдХ тАЬрд╣рд╛рдЙ рдкрд╛рдЗрдерди рд╡рд░реНрдХреНрд╕ред рдбреЗрд╡рд▓рдкрд░реНрд╕, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЗрдЪреНрдЫреБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд╛рдЗрдб тАЭ

рдЫрд╡рд┐ рдирдорд╕реНрддреЗ рд╣рдмреНрд░реЛрдЬрд╝рд┐рддреЗрд▓реА! рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╛рдпрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдирдИ рдХрд┐рддрд╛рдм рдЬрд╛рд░реА рдХреАред рд╣рдо рдЖрдкрдХреЛ рддрдереНрдп-рдЦреЛрдЬ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдВрд╢ред 7.4ред IDLE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдЪреВрдВрдХрд┐ IDLE рдореЗрдВ REPL рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реАрдзреЗ REPL рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдХреЛрдб рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ REPL рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:

name = "Matt" first = name age = 1000 print(id(age)) age = age + 1 print(id(age)) names = [] print(id(names)) names.append("Fred") print(id(names)) 

Iden.py рдирд╛рдордХ рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдб рд╕реЗрд╡ рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдБред IDLE рдореЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП F5 рдХреБрдВрдЬреА рджрдмрд╛рдПрдБред рдЖрд░рдИрдкреАрдПрд▓ рдореЗрдВ рдЪрд╛рд░ рдирдВрдмрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдкрд╣рд▓реЗ рджреЛ рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗ; рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред рдЕрдВрддрд┐рдо рджреЛ рд╕рдВрдЦреНрдпрд╛рдПрдБ рд╕рдорд╛рди рд╣реИрдВред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рддрдереНрдп рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд: рдпрджрд┐ рдЖрдк REPL рдореЗрдВ dir () рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЪрд░ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдм iden.py рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

IDLE рдореЗрдВ REPL рд╕рднреА рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдк рдирд╛рдо рдФрд░ рдирд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдпрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, names.append ("рдЬреЙрд░реНрдЬ")ред

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

рдЫрд╡рд┐

рдЫрд╡рд┐

рдЫрд╡рд┐

рдЕрдВрд╢ред 22. рдЙрдкрд╡рд░реНрдЧ


рд╕рдореВрд╣ рдФрд░ рд░рд╛рдЬреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдХреНрд╖рд╛рдПрдВ рдХреЛрдб рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рднреА рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рд╡рд░реНрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЙрдкрд╡рд░реНрдЧ рд╣реИред рдЬрд┐рд╕ рд╡рд░реНрдЧ рд╕реЗ рдЙрдкрд╡рд░реНрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрд╕реЗ рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХрд╛ рджреВрд╕рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рдореВрд▓ рд╡рд░реНрдЧ рд╣реИ)ред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреЗрдпрд░ 6 рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬреЛ рдХрд░реЗрдХреНрдЯрдЪреЗрдпрд░ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ:

 >>> class Chair6(CorrectChair): ... max_occupants = 6 

рдиреЛрдЯ: CorrectChair рдХрд╛ рдореВрд▓ рд╡рд░реНрдЧ рд╡рд░реНрдЧ рдирд╛рдо рдХреЗ рдмрд╛рдж рдХреЛрд╖реНрдардХ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЪреЗрдпрд░ 6 рдЕрдкрдиреЗ рд╢рд░реАрд░ рдореЗрдВ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 >>> sixer = Chair6(76) 

рдпрджрд┐ рдХреЛрдИ рд░рдЪрдирд╛рдХрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╛рдпрдерди рдПрдХ рд╡рд╕реНрддреБ рдХреИрд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ? рдпрд╣рд╛рдВ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ: рдЬрдм рдкрд╛рдпрдердиред Init__ рд╡рд┐рдзрд┐ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЦреЛрдЬ рдЪреЗрдпрд░ 6 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЪреВрдВрдХрд┐ рдЪреЗрдпрд░ 6 рдХреНрд▓рд╛рд╕ рдореЗрдВ рдХреЗрд╡рд▓ max_occupants рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдкрд╛рдЗрдерди рдХреЛ .__ init__ рд╡рд┐рдзрд┐ рдпрд╣рд╛рдВ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧреАред рдЪреВрдБрдХрд┐ рдЪреЗрдпрд░ 6 рд╕рд╣реАрдЪреЗрдЪрд░ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ __bases__ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬреЛ рдЯрдкрд▓ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдкрд┐рдд рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЫрд╡рд┐

 >>> Chair6.__bases__ (__main__.CorrectChair,) 

рдлрд┐рд░ рдкрд╛рдпрдерди рдмреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рд╕реБрдзрд╛рд░рдХ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдвреВрдВрдврддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

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

 >>> sixer.load(7) Traceback (most recent call last): File "/tmp/chair.py", line 30, in <module> sixer.load(7) File "/tmp/chair.py", line 13, in load new_val = self._check(self.count + number) File "/tmp/chair.py", line 23, in _check number)) ValueError: Invalid count:7 

рдкрд╛рдпрдерди рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рд╡рд┐рдзрд┐ рдвреВрдВрдврддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ._рдЪреЗрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ ValueError рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред

22.1ред рд╕реНрдЯреЙрдкреНрд╕ рдХреА рдЧрд┐рдирддреА


рдХрднреА-рдХрднреА рд╕реНрдХреАрдпрд░ рд▓рд┐рдлреНрдЯ рдореЗрдВ рдареАрдХ рд╕реЗ рдЪрдврд╝рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ рд╕реНрдХреАрдпрд░ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдлреНрдЯ рдХреЛ рдзреАрдорд╛ рдпрд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рд╣рдо рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реНрдЯреЙрдк рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдЧрд╛ред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХред рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдХрд┐ рдПрдХ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реНрдХреАрдпрд░ рдФрд░ рдХреБрд░реНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╣ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ is_stalled рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд╣рд░ рдмрд╛рд░ рд▓реЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

 >>> class StallChair(CorrectChair): ... def __init__(self, id, is_stalled): ... super().__init__(id) ... self.is_stalled = is_stalled ... self.stalls = 0 ... ... def load(self, number): ... if self.is_stalled(number, self): ... self.stalls += 1 ... super().load(number) 

рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ is_stalled рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдХрд╛рд░реНрдп 10% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

 >>> import random >>> def ten_percent(number, chair): ... """Return True 10% of time""" ... return random.random() < .1 

рдЕрдм рдЖрдк is_stalled рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ ten_percent рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 >>> stall42 = StallChair(42, ten_percent) 

22.2ред рд╕реБрдкрд░


рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ рд╕реНрдЯреЙрд▓рдЪреЗрдпрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ .__ init__ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреЛрдЯ: рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

 super().__init__(id) 

рдЬрдм рдЖрдк рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рд╕реБрдкрд░ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд╣реА рдореВрд▓ рд╡рд░реНрдЧ рддрдХ рдкрд╣реБрдВрдЪ рдорд┐рд▓рддреА рд╣реИред

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

рдЫрд╡рд┐

.рд▓реЛрдб рд╡рд┐рдзрд┐ рдореЗрдВ рд╕реБрдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ:

 def load(self, number): if self.is_stalled(number, self): self.stalls += 1 super().load(number) 

.рд▓реЛрдб рд╡рд┐рдзрд┐ рдореЗрдВ, рдпрджрд┐ рд▓рд┐рдлреНрдЯ рдмрдВрдж рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк is_stalled рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд╕реБрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CorrectChair рд╕реЗ рдореВрд▓ .рд▓реЛрдб рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рд╕реНрдерд╛рди (рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ) рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд░рдЦрдиреЗ рд╕реЗ рдХреЛрдб рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рдореЗрдВ рдХрдореА рдЖрддреА рд╣реИред

рд▓реЗрдЦрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реНрдЯреНрд░реЗрдЯрд╛, SciPy, SCALE, PyCON рдФрд░ OSCON рдЬреИрд╕реЗ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╡реНрдпрд╛рдЦреНрдпрд╛рди рджрд┐рдПред рдЗрд╕ рдкреБрд╕реНрддрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкрд╛рдЗрдерди рдХреЛ рдкрдврд╝рд╛рдиреЗ рдореЗрдВ рдЙрдирдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдореИрдЯ рд╕рдордп-рд╕рдордп рдкрд░ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рдЕрдЬрдЧрд░ рд╕рдВрдмрдВрдзреА рдЬрд╛рдирдХрд╛рд░реА (@__mharrison__) рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред

рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╕рдВрдкрд╛рджрдХреЛрдВ


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

рдПрдВрдбреНрд░рдпреВ рдореИрдХрд▓реЙрдШреНрд▓рд┐рди (рдПрдВрдбреНрд░рдпреВрдордХреНрд▓реЙрд▓рд┐рди) - рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдбрд┐рдЬрд╛рдЗрдирд░, рд╕реБрдмрд╣ рдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдФрд░ рджреЛрдкрд╣рд░ рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рдХрд╛ рд╡реНрдпрдХреНрддрд┐ред рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рдХрд╛рд░рдг, рд╡реЗ 1998 рд╕реЗ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЬреЙрд░реНрдЬ рдлреЙрдХреНрд╕ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдСрдирд░реНрд╕ рдХреЗ рд╡рд┐рдЬреЗрддрд╛, рдПрдВрдбреНрд░рдпреВ рдХреЗ рдкрд╛рд╕ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рдбрд┐рдЧреНрд░реА рд╣реИред рдЕрдкрдиреЗ рдЦрд╛рд▓реА рд╕рдордп рдореЗрдВ, рд╡рд╣ рдЕрдкрдиреА рдкрддреНрдиреА рдФрд░ рджреЛ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрдВрдкрд┐рдВрдЧ рдЯреНрд░рд┐рдк рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдПрдХ рдмрдврд╝рдИрдЧреАрд░реА рд╡рд░реНрдХрд╢реЙрдк рдореЗрдВ рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИ (рд╕рднреА рдЙрдВрдЧрд▓рд┐рдпрд╛рдВ рдЕрднреА рднреА рдЬрдЧрд╣ рдкрд░ рд╣реИрдВ)ред рдЙрдирдХреА рдЯреНрд╡рд┐рдЯрд░ рдкреЛрд╕реНрдЯ рдкрдврд╝реЗрдВ: @amclaughlin

┬╗рдкреБрд╕реНрддрдХ рдХреА рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рдХ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ
┬╗ рд╕рд╛рдордЧреНрд░реА
┬╗ рдЕрдВрд╢

рд╣реЗрдмреНрд░реЛрдЬрд╝рд┐рдЯреЗрд▓рдореА рдХреЗ рд▓рд┐рдП рдХреВрдкрди рдкрд░ 20% рдХреА рдЫреВрдЯ - рдкрд╛рдпрдерди ред

Source: https://habr.com/ru/post/hi433534/


All Articles