"Python - модули, пакеты, классы, экземпляры" - читать интересную книгу автора (Бройтман Олег)ЏЁв® - ®ЎкҐЄв®-®аЁҐвЁа®ў л© п§лЄ б® ¬®¦ҐбвўҐл¬ б«Ґ¤®ў ЁҐ¬. Њ®¦® бЄ § вм, зв® ЏЁв® Ї®¤¤Ґа¦Ёў Ґв Є« ббЁзҐбЄго ЋЋ-¬®¤Ґ«м б ҐЄ®в®ал¬Ё ®б®ЎҐ®бвп¬Ё. Љ« ббл ў Python ¬®Јгв Ё¬Ґвм бв вЁзҐбЄЁҐ ЇҐаҐ¬ҐлҐ, а §¤Ґ«пҐ¬лҐ ўбҐ¬Ё нЄ§Ґ¬Ї«па ¬Ё Є« бб , ® Ґ ¬®Јгв Ё¬Ґвм бв вЁзҐбЄЁе ¬Ґв®¤®ў. ‚ᥠ¬Ґв®¤л ®в®бпвбп Є нЄ§Ґ¬Ї«па ¬ Є« бб . ‚ᥠ¬Ґв®¤л ¬®¦® ЇҐаҐ®ЇаҐ¤Ґ«пвм ў б«Ґ¤ЁЄ е. ‘бл«Є ®ЎкҐЄв (нЄ§Ґ¬Ї«па Є« бб ) ЇҐаҐ¤ Ґвбп ў ¬Ґв®¤л ў пў®¬ ўЁ¤Ґ, ў ЇҐаў®¬ Ї а ¬ҐваҐ. ’а ¤ЁжЁ®® нвг ЇҐаҐ¬Ґго §лў ов self. Љ Є®Ј®-в® ®ЎйҐЈ® ЇаҐ¤Є ўбҐе Є« бб®ў (вЁЇ Object) ў Python Ґв. ‚®®ЎйҐ ў ЋЋ-Їа®Ја ¬¬Ёа®ў ЁЁ ў ЏЁв®Ґ ў ¦® Ґ Єв® ®в Є®Ј® б«Ґ¤гҐвбп, Є Є®© Ї®¤¤Ґа¦Ёў Ґвбп ЁвҐа䥩б; б«Ґ¤®ў ЁҐ «Ёим ¤ Ґв ॠ«Ё§ жЁо. ”®а¬ «мле ¬Ґе Ё§¬®ў Їа®ўҐаЄЁ ЁвҐа䥩ᮢ Ї®Є Ґв, ® ў®§¬®¦® ®Ё Ўг¤гв ўЄ«озҐл ў п§лЄ Ё ЎЁЎ«Ё®вҐЄЁ; Zope ¤Ґ« Ґв и ЈЁ ў н⮬ Їа ў«ҐЁЁ. Љ®бвагЄв®а Ё ¤ҐбвагЄв®а Є« бб §лў овбп __init__ Ё __del__ (ўбва®ҐлҐ Ё б«г¦ҐЎлҐ Ё¬Ґ ў ЏЁв®Ґ ®Ў®§ з овбп ¤ўг¬п Ї®¤зҐаЄЁў Ёп¬Ё ЇҐаҐ¤ Ё Ї®б«Ґ Ё¬ҐЁ; нв® ўбҐЈ® «Ёим б®Ј« 襨Ґ, п§лЄ Ґ § ЇаҐй Ґв Їа®Ја ¬¬Ёбвг ЇЁб вм б®ЎбвўҐлҐ ¬Ґв®¤л б в ЄЁ¬Ё Ё¬Ґ ¬Ё). ‚ҐаҐҐ Ўл«® Ўл §ў вм нвЁ ¬Ґв®¤л initializer Ё finalizer - ®Ё б ¬Ё Ґ а §¬Ґй ов Ё Ґ ®бў®Ў®¦¤ ов Ї ¬пвм (нв® ¤Ґ« Ґв § Ёе ЁвҐаЇаҐв в®а), ®Ё ЁЁжЁ «Ё§Ёагов Ё ®зЁй ов бў®Ё ЇҐаҐ¬ҐлҐ. ‚ ЏЁв®Ґ Ґв ®в¤Ґ«м®Ј® ®ЇҐа в®а new ¤«п ᮧ¤ Ёп нЄ§Ґ¬Ї«па®ў Є« бб . „«п ᮧ¤ Ёп нЄ§Ґ¬Ї«па Є« бб ўл§лў Ґвбп Є« бб б Ґ®Ўе®¤Ё¬л¬Ё Ї а ¬Ґва ¬Ё. ќвЁ Ї а ¬Ґвал ЇҐаҐ¤ овбп ў __init__. ЊҐв®¤ __del__, Є®Ґз®, ўл§лў Ґвбп ЎҐ§ Ї а ¬Ґва®ў (Єа®¬Ґ, ҐбвҐб⢥®, self). „«п г¤ «ҐЁп ®ЎкҐЄв®ў (Ё Ґ в®«мЄ® нЄ§Ґ¬Ї«па®ў Є« бб®ў) ў ЏЁв®Ґ Ґбвм ®ЇҐа в®а del. class Foo: bar = "baz" def __init__(self, foo): self.foo = foo def __del__(self): del self.foo foo = Foo(12) del foo ЋЇЁб ЁҐ Є« бб ᮧ¤ Ґв ®ў®Ґ Їа®бва бвў® Ё¬Ґ, ў Є®в®а®¬ ®ЇаҐ¤Ґ«повбп бв вЁзҐбЄЁҐ ЇҐаҐ¬ҐлҐ (ў 襬 ЇаЁ¬ҐаҐ нв® bar) Ё ¬Ґв®¤л. ‘®§¤ ЁҐ нЄ§Ґ¬Ї«па Ї®а®¦¤ Ґв Їа®бва бвў® Ё¬Ґ ®ЎкҐЄв , ¤®бвгЇ Є Є®в®а®¬г ®бгйҐбвў«пҐвбп зҐаҐ§ ЇҐаҐ¬Ґго нЄ§Ґ¬Ї«па Є« бб foo, ўгваЁ ¬Ґв®¤®ў Є« бб - зҐаҐ§ ЇҐаҐ¬Ґго self. Љ« ббл ў ЏЁв®Ґ Ї®§ў®«пов Їа®Ја ¬¬Ёбвг ᮧ¤ ў вм ®ўлҐ вЁЇл ¤ ле Ё ®ЇаҐ¤Ґ«пвм ¤«п Ёе ўбҐ ®ЇҐа жЁЁ, ¤®бвгЇлҐ ¤«п ўбв஥ле вЁЇ®ў. Ќ ЇаЁ¬Ґа, ¬Ґв®¤ __getitem__ Ї®§ў®«пҐв Ё¤ҐЄбЁа®ў вм ®ЎкҐЄв, __setitem__ - ЇаЁбў Ёў вм Ё¤ҐЄбг ®ЎкҐЄв . ЊҐв®¤ __getitem__ в Є¦Ґ Ї®§ў®«пҐв ®ЎкҐЄвг гз бвў®ў вм ў жЁЄ«Ґ for, н¬г«Ёагп Ї®б«Ґ¤®ў ⥫м®бвм (sequence). …бвм ¬Ґв®¤л, Ї®§ў®«пойЁҐ ®ЎкҐЄвг н¬г«Ёа®ў вм Ўг«ҐўбЄЁҐ § зҐЁп Ё гз бвў®ў вм ў ®ЇҐа в®а е if Ё while. ЊҐв®¤л __getattr__ Ё __setattr__ Ї®§ў®«пов зЁв вм Ё ЇЁб вм ваЁЎгвл ®ЎкҐЄв®ў. ЊҐв®¤ __call__ Ї®§ў®«пҐв ўл§лў вм нЄ§Ґ¬Ї«па Є« бб |
|
|