рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди Python рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рдпрд╣ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЖрдХрд╕реНрдорд┐рдХ рдмрджрд▓рд╛рд╡реЛрдВ рдпрд╛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рддрдерд╛ рдЕрдиреБрд░рдХреНрд╖рдг рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕рд░рд▓ рдХреНрд▓рд╛рд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
class Smartphone :
def __init__ ( self, brand, os) :
self. brand = brand
self. os = os
iphone = Smartphone( "Apple" , "iOS 17" )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХрдИ Python рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рддрд░рд╣ рдХрдХреНрд╖рд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреНрд░реЛ Pythonistas рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рд╕реЗ рдХрд╛рдлреА рджреВрд░ рд╣реИред рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рддрдм рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
iphone. os = "Android"
print ( iphone. os)
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Androidрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП, Android рдкрд░ рдЪрд▓ рд░рд╣рд╛ рдПрдХ iPhoneтАКтАФтАКрдХреНрдпрд╛ рд╣реА рдЕрдЬреАрдм рдмрд╛рдд рд╣реЛрдЧреА! рд╕рд╛рдл рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдХреЗ рднреАрддрд░ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рди рдмрджрд▓ рд╕рдХреЗрдВред
рдпрджрд┐ рд╡реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ рднреА, рддреЛ рд╡реЗ рд╣рдорд╛рд░реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рддрд╣рдд, рд╣рдорд╛рд░реА рд╢рд░реНрддреЛрдВ рдкрд░ рд╣реЛрдВред рд▓реЗрдХрд┐рди рд╣рдо рдлрд┐рд░ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рддрд╣ рдкрд░ .os рдпрд╛ .brand рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рд╡реИрд╕реЗ рд╣реА рдмрдиреЗ рд░рд╣реЗрдВред
рдЗрди рд╕рднреА рдмрд╛рддреЛрдВ рдХреЛ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕реАрдЦреЗрдВрдЧреЗред рдЖрдЗрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!
Python рдореЗрдВ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
Python рдордЬрдмреВрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рдХреА рдмрдЬрд╛рдп рдкрд░рдВрдкрд░рд╛рдУрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рджреЗрдЦрд┐рдП, Python рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, тАЬрд╣рдо рд╕рднреА рдпрд╣рд╛рдБ рд╡рдпрд╕реНрдХ рд╣реИрдВредтАЭ рд╣рдо рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рдВрдкрд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп Python рдбреЗрд╡рд▓рдкрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВрдЧреЗред
Java рдФрд░ C++ рдЬреИрд╕реА рдЕрдиреНрдп OOP рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ public, private рдпрд╛ protected рдЬреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Python рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ:
рд╡рд┐рд╢реЗрд╖рддрд╛ Python Java C++ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рдХреЛрдИ рд▓рд╛рдЧреВ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░ рдирд╣реАрдВ; рдиреЗрдорд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ (_protected,┬а__private) public,┬аprotected,┬аprivate рдХреАрд╡рд░реНрдб рд╕реЗ рд▓рд╛рдЧреВpublic,┬аprotected,┬аprivate рдХреАрд╡рд░реНрдб рд╕реЗ рд▓рд╛рдЧреВGetter/Setter рдореЗрдердбреНрд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ, рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ @property рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдерд╛, рдЖрдорддреМрд░ рдкрд░ рдореЗрдердбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдерд╛, рдЖрдорддреМрд░ рдкрд░ рдореЗрдердбреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдиреЗрдорд┐рдВрдЧ рдХрдиреНрд╡реЗрдВрд╢рдВрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн; рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЕрдиреБрд╢рд╛рд╕рди рдкрд░ рдирд┐рд░реНрднрд░ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд; рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд; рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рджрд░реНрд╢рди "рд╣рдо рд╕рднреА рдпрд╣рд╛рдБ рд╡рдпрд╕реНрдХ рд╣реИрдВ" - рдкрд░рдВрдкрд░рд╛рдУрдВ рдФрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рд╕рдЦреНрдд рдЕрдиреБрдкрд╛рд▓рди рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рд╕рдЦреНрдд рдЕрдиреБрдкрд╛рд▓рди
рддреЛ, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢, рдпрджрд┐ рд╕рднреА рдирд╣реАрдВ, рддрдХрдиреАрдХреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ, Python рдХреА рдкрд░рдВрдкрд░рд╛рдПрдБ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рднрд░реЛрд╕рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗред
Python рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рд░рд▓ рдХреНрд▓рд╛рд╕ рд╣реИ:
class Tree :
def __init__ ( self, height) :
self. height = height
pine = Tree( 20 )
print ( pine. height)
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
20рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрд╕рдореЗрдВ рдПрдХрдорд╛рддреНрд░ height рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╛рди рдореЗрдВ рдмрджрд▓ рднреА рд╕рдХрддреЗ рд╣реИрдВ:
pine. height = 50
pine. height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
50рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
pine. height = "Grandma"
pine. height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
'Grandma'рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рддреЛ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдмрддрд╛рдПрдБ рдХрд┐ height рдмрджрд▓рдирд╛ рд╡рд░реНрдЬрд┐рдд рд╣реИ? рдЦреИрд░, рд╣рдо рдЗрд╕реЗ рдПрдХ protected member рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рдЕрдЧреНрд░рд╡рд░реНрддреА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЬреЛрдбрд╝рдХрд░:
class Tree :
def __init__ ( self, height) :
self. _height = height
pine = Tree( 20 )
pine. _height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
20рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм, рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рдкрд░рдВрдкрд░рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд╡реЗ рдЬрд╛рдиреЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХрдбрд╝реЗ рддреМрд░ рдкрд░ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд░ рдЕрдЧрд░ рд╡реЗ рдЪрд╛рд╣реЗрдВ, рддреЛ рд╡реЗ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреА рд╣рд╛рдБред
рддреЛ, рд╣рдо рдЗрд╕реЗ рднреА рдХреИрд╕реЗ рд░реЛрдХреЗрдВ? рдПрдХ рдФрд░ рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗтАКтАФтАКрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЛ рдбрдмрд▓ рдЕрдЧреНрд░рд╡рд░реНрддреА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЬреЛрдбрд╝рдХрд░ рдПрдХ private member рдореЗрдВ рдмрджрд▓ рджреЗрдВ:
class Tree :
def __init__ ( self, height) :
self. __height = height
pine = Tree( 20 )
pine. __height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
AttributeError: 'Tree' object has no attribute '__height'
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм, рдпрджрд┐ рдХреЛрдИ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ Python рддреНрд░реБрдЯрд┐ рдЙрдард╛рдПрдЧрд╛, рд╕рдВрд╢реЛрдзрди рдХреА рдмрд╛рдд рддреЛ рджреВрд░ рд░рд╣реАред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдХреНрдпрд╛ рдХрд┐рдпрд╛? рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЕрдкрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХрдорд╛рддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рдЫрд┐рдкрд╛ рджреАред рд╣рдорд╛рд░реА рдХреНрд▓рд╛рд╕ рдмреЗрдХрд╛рд░ рд╣реЛ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдирд╣реАрдВ рд╣реИред
рддреЛ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреА рдКрдБрдЪрд╛рдИ рдХреИрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреЗрдбрд╝ рдХреА рдКрдБрдЪрд╛рдИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реЛ рдФрд░ рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╣реЛрдВред рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХрд╛ Java-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд┐рддреНрд░ getter рдФрд░ setter рдореЗрдердбреНрд╕ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рддреЗ рд╣реИрдВ:
class Tree :
def __init__ ( self, height) :
self. __height = height
def get_height ( self) :
return self. __height
def set_height ( self, new_height) :
if not isinstance ( new_height, int ) :
raise TypeError( "Tree height must be an integer" )
if 0 < new_height <= 40 :
self. __height = new_height
else :
raise ValueError( "Invalid height for a pine tree" )
pine = Tree( 20 )
pine. get_height( )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
20рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдк рдПрдХ рдирд┐рдЬреА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ __height рдмрдирд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ get_height рдФрд░ set_height рдореЗрдердбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред
pine. set_height( 25 )
pine. get_height( )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
25рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдирдпрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, set_height рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирдИ рдКрдБрдЪрд╛рдИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реЛред
pine. set_height( "Password" )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
TypeError: Tree height must be an integer
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд▓реЗрдХрд┐рди рдпреЗ рдореЗрдердбреНрд╕ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рднреА рднрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИ:
pine. set_height( pine. get_height( ) + 5 )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХреНрдпрд╛ рдпрд╣ рдФрд░ рд╕реБрдВрджрд░ рдФрд░ рдкрдардиреАрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдпрд╣ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХреЗрдВ:
pine. height += 5 рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдФрд░ рдлрд┐рд░ рднреА рдКрдБрдЪрд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХреЗрдВ? рдЬрд╡рд╛рдм рд╣реИ рд╣рд╛рдБ, рдФрд░ рдЕрдЧрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣рдо рдпрд╣реА рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред
Python рдХреНрд▓рд╛рд╕реЗрд╕ рдореЗрдВ @property рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╣рдо рдПрдХ рдирдИ рддрдХрдиреАрдХ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВтАКтАФтАКрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдмрдирд╛рдирд╛:
class Tree :
def __init__ ( self, height) :
self. __height = height
@property
def height ( self) :
return self. __height
pine = Tree( 17 )
pine. height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
17рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЫрд┐рдкреЗ рд╣реБрдП рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ __height рдХреЛ рдРрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ рдорд╛рдиреЛ рд╡рд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ height рд╣реЛред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо height рдирд╛рдордХ рдПрдХ рдореЗрдердб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ self.__height рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ @property рд╕реЗ рдбреЗрдХреЛрд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм, рд╣рдо height рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдЬреА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
pine. heightрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
17рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ:
pine. height = 15 рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
AttributeError: can't set attribute ' height'
рддреЛ, рд╣рдо height(self, new_height) рдирд╛рдо рдХрд╛ рдПрдХ рдФрд░ рдореЗрдердб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ height.setter рдбреЗрдХреЛрд░реЗрдЯрд░ рд╕реЗ рд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдореЗрдердб рдХреЗ рдЕрдВрджрд░, рд╣рдо рд╡рд╣ рд▓реЙрдЬрд┐рдХ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдКрдБрдЪрд╛рдИ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реАрдорд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:
class Tree :
def __init__ ( self, height) :
self. __height = height
@property
def height ( self) :
return self. __height
@height. setter
def height ( self, new_height) :
if not isinstance ( new_height, int ) :
raise TypeError( "Tree height must be an integer" )
if 0 < new_height <= 40 :
self. __height = new_height
else :
raise ValueError( "Invalid height for a pine tree" )
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдм, рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ height рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ @height.setter рдХреЙрд▓ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рдорд╛рди рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:
pine = Tree( 10 )
pine. height = 33
pine. height = 45
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
ValueError: Invalid height for a pine tree
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдо рдбреЙрдЯ-рдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ height рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЛ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕реЗ @height.getter рд╕реЗ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
class Tree :
def __init__ ( self, height) :
self. __height = height
@property
def height ( self) :
return self. __height
@height. getter
def height ( self) :
return f"This tree is { self. __height} meters"
pine = Tree( 33 )
pine. height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
'This tree is 33 meters' рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрджреНрдпрдкрд┐ рд╣рдордиреЗ pine рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдКрдБрдЪрд╛рдИ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛, рд╣рдо @height.getter рд╕реЗ рдЙрд╕рдХреЗ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди рдХреЛ рдмрджрд▓ рд╕рдХреЗред
рдпреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо Python рдХреНрд▓рд╛рд╕ рдореЗрдВ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдХреИрд╕реЗ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдж рд░рдЦреЗрдВ, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЕрдм рднреА рдПрдХ рдкрд░рдВрдкрд░рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЖрдВрддрд░рд┐рдХ рдирд┐рдЬреА рд╕рджрд╕реНрдп __height рдХреЛ рдлрд┐рд░ рднреА рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
pine. _Tree__height = "Gotcha!"
pine. height
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
'This tree is Gotcha! meters'рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
Python рдХреНрд▓рд╛рд╕реЗрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдирд┐рдЬреА рдореЗрдердбреНрд╕ рднреАред рдпрд╣ рдХреЛрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдЦрд╛рдореА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ тАЬрд╣рдо рд╕рднреА рдпрд╣рд╛рдБ рд╡рдпрд╕реНрдХ рд╣реИрдВтАЭ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдпрд╣рд╛рдБ рдЙрди Python рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдЕрднреА рджреЗрдЦрд╛:
рдореЙрдбрд┐рдлрд╝рд╛рдпрд░/рдкрд░рдВрдкрд░рд╛ рд╡рд┐рд╡рд░рдг рдЙрджрд╛рд╣рд░рдг Public рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХреНрд╕реЗрд╕ рд╕реНрддрд░; рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдФрд░ рдореЗрдердбреНрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕реБрд▓рдн self.attributeProtected рдПрдХрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрд┐рдд; рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдПрдХреНрд╕реЗрд╕ рджрд░реНрд╢рд╛рдиреЗ рдХреА рдкрд░рдВрдкрд░рд╛ self._attributePrivate рдбрдмрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрд┐рдд; рдиреЗрдо-рдореИрдВрдЧрд▓рд┐рдВрдЧ рд╕реАрдорд┐рдд рдПрдХреНрд╕реЗрд╕ рдкреНрд░рддрд┐рдмрдВрдз рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ self.__attributeProperties @property┬аdecorator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдЬреА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рддрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ@property def attribute(self):Read-only Properties @attribute.setter рдирд╣реАрдВ; рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рджреЗрддрд╛ рд╣реИ@property def attribute(self):
рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ
рдХреБрдЫ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдПрдБ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдиреНрдп рдЕрдиреБрднрд╡реА OOPistas рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рддрд╛рд▓рдореЗрд▓ рдмрд┐рдард╛рдП:
рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдпрд╛ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдпрд╛ рдореЗрдердбреНрд╕ рдмрдирд╛рдПрдБ рдпрджрд┐ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЖрдк рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рдпрд╛ рдкреНрд░рд╛рдЗрд╡реЗрдЯ рдореЗрдВрдмрд░реНрд╕ рдкреНрд░рд▓реЗрдЦрди рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк, рдбреЗрд╡рд▓рдкрд░, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реВрдЪрдирд╛ рдХреЗ рдЙрдиреНрд╣реЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╣рд░ рдПрдХ рдХреНрд▓рд╛рд╕ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдкрд░реНрдЯреА рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХрдИ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рд╡рд╛рд▓реА рдмрдбрд╝реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ attr.getter рдФрд░ attr.setter рдореЗрдердбреНрд╕ рд▓рд┐рдЦрдирд╛ рд╕рд┐рд░рджрд░реНрдж рдмрди рд╕рдХрддрд╛ рд╣реИред
рд╣рд░ рдмрд╛рд░ рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдЯреЗрдХреНрдЯреЗрдб рд╕рджрд╕реНрдп (_) рдПрдХреНрд╕реЗрд╕ рдХрд░реЗ рддреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдкреНрд░рд╛рдЗрд╡реЗрдЯ рд╕рджрд╕реНрдпреЛрдВ рдХрд╛ рд╕рдВрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ , рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕ рдкрд░рдВрдкрд░рд╛ рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрдкрдардиреАрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред рдХреНрдпреЛрдВрдХрд┐ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЛрдб рдЕрдиреБрд░рдХреНрд╖рдг рдФрд░ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рди рдЫрд┐рдкрд╛рдПрдБред
рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓реА рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ , рддреЛ @attr.setter рдореЗрдердб рд▓рд╛рдЧреВ рди рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рдкрд╛рдПрдБрдЧреЗ рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдБрдЧреЗред
рд╣рдореЗрд╢рд╛ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдПрдХ рдкрд░рдВрдкрд░рд╛ рд╣реИ , Python рдХреА рд╕рд┐рдВрдЯреИрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕рдЦреНрддреА рд╕реЗ рд▓рд╛рдЧреВ рдкрд╣рд▓реВ рдирд╣реАрдВред
рд╕рд░рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП, dataclasses рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдХреЗ рдХреЛрдб рд╕реЗ рдХреНрд▓рд╛рд╕ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, dataclasses рд╕рд░рд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдФрд░ рдореЗрдердбреНрд╕ рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдп рд╣реЛрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ dataclasses рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рджреЗрдЦреЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдордиреЗ Python рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдореБрдЦреНрдп рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ: рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╕реАрдЦрд╛ред
рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЖрдкрдХреЛ рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдЕрдВрджрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рддрдХ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрдХреНрд╕реЗрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рджреЗрддреА рд╣реИред рдЗрд╕рд╕реЗ рдЖрдк рд╕реНрд╡рдЪреНрдЫ, рдкрдардиреАрдп рдФрд░ рдХреБрд╢рд▓ рдХреЛрдб рд▓рд┐рдЦ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдЖрдХрд╕реНрдорд┐рдХ рдмрджрд▓рд╛рд╡ рдпрд╛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред
OOP рдЬреНрдЮрд╛рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдХреБрдЫ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рд╣реИрдВ:
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди Python рдореЗрдВ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИред рдпрд╣ рдЖрдкрдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЖрдХрд╕реНрдорд┐рдХ рдмрджрд▓рд╛рд╡реЛрдВ рдпрд╛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рддрдерд╛ рдЕрдиреБрд░рдХреНрд╖рдг рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕рд░рд▓ рдХреНрд▓рд╛рд╕ рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдХрдИ Python рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рддрд░рд╣ рдХрдХреНрд╖рд╛рдПрдБ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреНрд░реЛ Pythonistas рджреНрд╡рд╛рд░рд╛ рдЕрдкрдирд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рд╕реЗ рдХрд╛рдлреА рджреВрд░ рд╣реИред рдЗрд╕ рдХреНрд▓рд╛рд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рддрдм рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдЗрд╕рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП, Android рдкрд░ рдЪрд▓ рд░рд╣рд╛ рдПрдХ iPhoneтАКтАФтАКрдХреНрдпрд╛ рд╣реА рдЕрдЬреАрдм рдмрд╛рдд рд╣реЛрдЧреА! рд╕рд╛рдл рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдиреА рдХреНрд▓рд╛рд╕ рдХреЗ рднреАрддрд░ рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рддрдп рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рди рдмрджрд▓ рд╕рдХреЗрдВред
рдпрджрд┐ рд╡реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ рднреА, рддреЛ рд╡реЗ рд╣рдорд╛рд░реЗ рдирд┐рдпрдореЛрдВ рдХреЗ рддрд╣рдд, рд╣рдорд╛рд░реА рд╢рд░реНрддреЛрдВ рдкрд░ рд╣реЛрдВред рд▓реЗрдХрд┐рди рд╣рдо рдлрд┐рд░ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рддрд╣ рдкрд░
.osрдпрд╛.brandрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рд╡реИрд╕реЗ рд╣реА рдмрдиреЗ рд░рд╣реЗрдВредрдЗрди рд╕рднреА рдмрд╛рддреЛрдВ рдХреЛ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕реАрдЦреЗрдВрдЧреЗред рдЖрдЗрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!
Python рдореЗрдВ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
Python рдордЬрдмреВрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рдХреА рдмрдЬрд╛рдп рдкрд░рдВрдкрд░рд╛рдУрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рджреЗрдЦрд┐рдП, Python рдХреЛрдб рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдкреАрдЫреЗ рдХрд╛ рдореВрд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, тАЬрд╣рдо рд╕рднреА рдпрд╣рд╛рдБ рд╡рдпрд╕реНрдХ рд╣реИрдВредтАЭ рд╣рдо рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкрд░рдВрдкрд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп Python рдбреЗрд╡рд▓рдкрд░ рд╣рдорд╛рд░реЗ рдХреЛрдб рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрд╕рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВрдЧреЗред
Java рдФрд░ C++ рдЬреИрд╕реА рдЕрдиреНрдп OOP рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ
public,privateрдпрд╛protectedрдЬреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕ рд╕реЗ рд╕рдЦреНрддреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Python рдореЗрдВ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ:_protected,┬а__private)public,┬аprotected,┬аprivateрдХреАрд╡рд░реНрдб рд╕реЗ рд▓рд╛рдЧреВpublic,┬аprotected,┬аprivateрдХреАрд╡рд░реНрдб рд╕реЗ рд▓рд╛рдЧреВ@propertyрдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрддреЛ, рдПрдиреНрдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢, рдпрджрд┐ рд╕рднреА рдирд╣реАрдВ, рддрдХрдиреАрдХреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ, Python рдХреА рдкрд░рдВрдкрд░рд╛рдПрдБ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рднрд░реЛрд╕рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВрдЧреЗред
Python рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдореЙрдбрд┐рдлрд╝рд╛рдпрд░реНрд╕
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╕рд░рд▓ рдХреНрд▓рд╛рд╕ рд╣реИ:
рдЗрд╕рдореЗрдВ рдПрдХрдорд╛рддреНрд░ height рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╛рди рдореЗрдВ рдмрджрд▓ рднреА рд╕рдХрддреЗ рд╣реИрдВ:
рддреЛ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдмрддрд╛рдПрдБ рдХрд┐ height рдмрджрд▓рдирд╛ рд╡рд░реНрдЬрд┐рдд рд╣реИ? рдЦреИрд░, рд╣рдо рдЗрд╕реЗ рдПрдХ protected member рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдПрдХ рдЕрдЧреНрд░рд╡рд░реНрддреА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЬреЛрдбрд╝рдХрд░:
рдЕрдм, рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рдкрд░рдВрдкрд░рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рд╡реЗ рдЬрд╛рдиреЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдХрдбрд╝реЗ рддреМрд░ рдкрд░ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкрд░ рдЕрдЧрд░ рд╡реЗ рдЪрд╛рд╣реЗрдВ, рддреЛ рд╡реЗ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреА рд╣рд╛рдБред
рддреЛ, рд╣рдо рдЗрд╕реЗ рднреА рдХреИрд╕реЗ рд░реЛрдХреЗрдВ? рдПрдХ рдФрд░ рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗтАКтАФтАКрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреЛ рдбрдмрд▓ рдЕрдЧреНрд░рд╡рд░реНрддреА рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдЬреЛрдбрд╝рдХрд░ рдПрдХ private member рдореЗрдВ рдмрджрд▓ рджреЗрдВ:
рдЕрдм, рдпрджрд┐ рдХреЛрдИ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ Python рддреНрд░реБрдЯрд┐ рдЙрдард╛рдПрдЧрд╛, рд╕рдВрд╢реЛрдзрди рдХреА рдмрд╛рдд рддреЛ рджреВрд░ рд░рд╣реАред
рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдиреЗ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдХреНрдпрд╛ рдХрд┐рдпрд╛? рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЕрдкрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рдЬреБрдбрд╝реА рдПрдХрдорд╛рддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рдЫрд┐рдкрд╛ рджреАред рд╣рдорд╛рд░реА рдХреНрд▓рд╛рд╕ рдмреЗрдХрд╛рд░ рд╣реЛ рдЧрдИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдирд╣реАрдВ рд╣реИред
рддреЛ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреА рдКрдБрдЪрд╛рдИ рдХреИрд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреЗрдбрд╝ рдХреА рдКрдБрдЪрд╛рдИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реЛ рдФрд░ рдХреЗрд╡рд▓ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╣реЛрдВред рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХрд╛ Java-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд┐рддреНрд░ getter рдФрд░ setter рдореЗрдердбреНрд╕ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рддреЗ рд╣реИрдВ:
рдЗрд╕ рддрд░реАрдХреЗ рд╕реЗ, рдЖрдк рдПрдХ рдирд┐рдЬреА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ
__heightрдмрдирд╛рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛget_heightрдФрд░set_heightрдореЗрдердбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВредрдирдпрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ,
set_heightрд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдирдИ рдКрдБрдЪрд╛рдИ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╣реЛредрд▓реЗрдХрд┐рди рдпреЗ рдореЗрдердбреНрд╕ рдПрдХ рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рднреА рднрджреНрджрд╛ рд▓рдЧрддрд╛ рд╣реИ:
рдХреНрдпрд╛ рдпрд╣ рдФрд░ рд╕реБрдВрджрд░ рдФрд░ рдкрдардиреАрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдпрд╣ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХреЗрдВ:
рдФрд░ рдлрд┐рд░ рднреА рдКрдБрдЪрд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реАрдорд╛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХреЗрдВ? рдЬрд╡рд╛рдм рд╣реИ рд╣рд╛рдБ, рдФрд░ рдЕрдЧрд▓реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣рдо рдпрд╣реА рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред
Python рдХреНрд▓рд╛рд╕реЗрд╕ рдореЗрдВ @property рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╣рдо рдПрдХ рдирдИ рддрдХрдиреАрдХ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВтАКтАФтАКрдПрдЯреНрд░рд┐рдмреНрдпреВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдмрдирд╛рдирд╛:
рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЫрд┐рдкреЗ рд╣реБрдП рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ
__heightрдХреЛ рдРрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ рдорд╛рдиреЛ рд╡рд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯheightрд╣реЛред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдоheightрдирд╛рдордХ рдПрдХ рдореЗрдердб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛself.__heightрд▓реМрдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ@propertyрд╕реЗ рдбреЗрдХреЛрд░реЗрдЯ рдХрд░рддреЗ рд╣реИрдВредрдЕрдм, рд╣рдо
heightрдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдЬреА рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ:
- Python OOP рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
- Object-oriented Programming in Python
- How to Master PythonтАКтАФтАКan Expert Guide
рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛