рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдПрдХ рдЫреЛрдЯрд╛ рдиреЛрдЯ "рдЖрдкрдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреА рдЧрдИ рдереАред"
рдХреНрд▓рд╛рд╕рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВ:
рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЙрджрд╛рд╣рд░рдг рдЪрд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╡рд░реНрдЧ рдЪрд░ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЭрд╛ рдХреА рдЧрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддреЗ рд╣реИрдВ
рдЪрд▓реЛ рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ
class Vessel:
рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ,
рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:
Iowa = Vessel("Iowa") Drum=Vessel("Drum") printAttr(Iowa, Drum) >>name=Iowa vtype=boat __class__.vtype=boat >>name=Drum vtype=boat __class__.vtype=boat
рдЕрднреА рддрдХ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рдерд╛ред
рдЖрдЗрдП vtype рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ: рдпрд╣ рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЙрд╕реА рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИрдВ
Vessel.vtype = "USS boat" printAttr(Iowa, Drum) >>name=Iowa vtype=USS boat __class__.vtype=USS boat >>name=Drum vtype=USS boat __class__.vtype=USS boat Iowa.__class__.vtype = 'USS WW2 Boat' printAttr(Iowa, Drum) >>name=Iowa vtype=USS WW2 Boat __class__.vtype=USS WW2 Boat >>name=Drum vtype=USS WW2 Boat __class__.vtype=USS WW2 Boat
рдФрд░ рдлрд┐рд░, рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИред
рдЕрдм рдЖрдЗрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
Drum.vtype = 'submarine' printAttr(Iowa, Drum) >>name=Iowa vtype=USS WW2 Boat __class__.vtype=USS WW2 Boat >>name=Drum vtype=submarine __class__.vtype=USS WW2 Boat
рдФрд░ рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ: рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ vtype рдПрдХ рд╡рд░реНрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдЕрдЪрд╛рдирдХ рдпрд╣ рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЧреБрдг рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
Vessel.vtype = "NAVY Museum" >>name=Iowa vtype=NAVY Museum __class__.vtype=NAVY Museum >>name=Drum vtype=submarine __class__.vtype=NAVY Museum
рдЕрдЧрд░ рдХреНрдпрд╛ ...
del Drum.vtype >>name=Iowa vtype=NAVY Museum __class__.vtype=NAVY Museum >>name=Drum vtype=NAVY Museum __class__.vtype=NAVY Museum
рдФрд░ рдлрд┐рд░ рд╕реЗ рдПрдХ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрдм рдирд╣реАрдВ рдЧреБрдЬрд░рддреА рд╣реИ
del Drum.vtype printAttr(Iowa, Drum) del Drum.vtype AttributeError: vtype
рдФрд░ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрдЧ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ vtype рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред
Drum.vtype = 'submarine' del Vessel.vtype printAttr(Iowa, Drum) >>name=Iowa >>name=Drum vtype=submarine
рдпрджрд┐ рдЖрдк рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкрд╣рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рдереЗ, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд╣рдо рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдХрдИ рдкреАрдврд╝рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдордп рд╕реАрдорд╛ рдХреА рд╡рд┐рдлрд▓рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЖрджрд┐ред
рдЕрдЬрдЧрд░ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕рдм рдХреБрдЫ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИ, рдХреЗрд╡рд▓ __class__ рдпрд╛ рдЗрд╕рдХреЗ рдПрдирд╛рд▓реЙрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рд╢рд╛рдВрдд" рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдХрд┐рд╕реА рддрд░рд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреА рд░рдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ рдФрд░ рдореБрдЭреЗ рд╡рд╕реНрддреБ рд╕реНрддрд░ рдкрд░ рд╡рд░реНрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 10 рдмрд╛рд░ рд╕реЛрдЪрддрд╛ рд╣реВрдВред
рдЕрджреНрдпрддрди: рдкрд╛рда PrintAttr
def printAttr(*o): for a in o: print(a)