Мундариҷа[Пинҳон кардан][Намоиш]
Дар байни таҳиягарон, барномасозии ба объект нигаронидашуда пайравони зиёдеро ҷалб кард. Забони маъмули компютерии Python низ ба парадигмаи ба объект нигаронидашуда мувофиқат мекунад.
Он бо муайян кардани объектҳо ва синфҳо дар Python, ки асоси принсипҳои OOPs мебошад, сарукор дорад. Дар ин дастур оид ба "барномасозии ба объект нигаронидашуда дар Python", шумо тарзи эълон кардани синфҳои Python, сохтани объектҳо аз онҳо ва истифодаи чаҳор усули OOP-ро меомӯзед.
Пас, аввалин чизест.
Барномасозии ба объект нигаронидашуда чист?
Диққати асосии барномасозии ба объект нигаронидашуда (OOP) эҷоди "объектҳо" мебошад. Маҷмӯаи тағирёбандаҳо ва функсияҳои ба ҳам алоқаманд объектро ташкил медиҳанд.
Ин тағирёбандаҳо одатан ҳамчун атрибутҳои объект номида мешаванд ва рафтори он одатан ҳамчун функсияҳои он номида мешавад. Ин ҷузъҳо барномаро бо сохтори муассиртар ва фаҳмо таъмин мекунанд. Мошин як мисоли ашё аст.
Агар мошин як ашё мебуд, хусусиятҳои он чизҳое ба монанди ранг, модел, нарх, бренд ва ғайраро дар бар мегиранд. Илова бар ин, он суръатро суръат мебахшид, суст мекунад ва фишангҳоро иваз мекард.
Мисоли дигар: Агар мо сагро ҳамчун ашё тасаввур кунем, пас баъзе аз хусусиятҳои он метавонад ранг, зот, ном, вазн ва ғайра бошад. Ва ӯ ҳаракат мекунад, аккос мекунад, бозӣ мекунад ва ғайра.
Азбаски он мафҳумҳои воқеиро ба монанди объектҳо, пинҳон, мерос ва ғайраро дар барномасозӣ дар бар мегирад, барномасозии ба объект нигаронидашуда маълум аст. Азбаски он ба вазъиятҳои воқеии ҷаҳонӣ хеле монанд аст, визуализатсия соддатар карда мешавад.
Консепсияҳои барномасозии ба объект нигаронидашуда
Синфҳо ва объектҳо дар Python
Мисли ҳама забонҳои ба объект нигаронидашуда, Python ба шумо имкон медиҳад, ки синфҳоро барои тавлиди объектҳо тарҳрезӣ кунед. Навъҳои маъмултарини додаҳо дар Python, аз ҷумла сатрҳо, рӯйхатҳо, луғатҳо ва дигар объектҳо, синфҳои дарунсохт мебошанд.
Синф як гурӯҳи усулҳои алоқаманд ва тағирёбандаҳои намунавӣ мебошад, ки як намуди муайяни объектро муайян мекунанд. Синфро ҳамчун модел ё қолаби объект дидан мумкин аст. Тағирёбандаҳое, ки синфро ташкил медиҳанд, ҳамчун атрибутҳо маълуманд.
Объект узви синфест, ки дорои маҷмӯи муайяни атрибутҳо мебошад. Аз ин сабаб, бо истифода аз як синф ҳар як миқдори объектҳоро сохтан мумкин аст.
Синфҳои Python бо истифода аз калимаи синфи муайян карда мешаванд, ки баъд аз он номи синф ва ду нуқта гузошта мешавад. Намунаи синфи тӯтӣ метавонад чунин бошад:
Дар ин ҷо мо синфи холии Parrotро бо истифода аз калимаи калидии class эълон мекунем. Мо мисолҳоро аз синфҳо эҷод мекунем. Мисол як объекти мушаххасест, ки аз синфи муайян сохта шудааст. 'pass' аксар вақт ҳамчун стенд барои код истифода мешавад, ки татбиқи он мо метавонем дар айни замон даст кашем. Мо метавонем бо истифода аз калимаи калидии "pass" рамзи Python-ро бидуни хатогиҳо иҷро кунем.
Як намунаи синф ба объект (мисол) оварда мерасонад. Ҳангоми сохтани синф танҳо тавсифи объект муайян карда мешавад. Дар натиҷа, ягон нигаҳдорӣ ё RAM ҷудо карда намешавад.
Намунаи объекти синфи parrot инҳоянд:
Obj дар ин мисол объекти синфи Parrot аст.
Биёед бигӯем, ки мо дар бораи тӯтиҳо маълумот дорем. Мо ҳоло нишон медиҳем, ки чӣ тавр синфи паррот ва объектҳои онро эҷод кунем.
Усули махсус (__init__)
Усули бо номи init атрибутҳоеро муайян мекунад, ки ҳар як объекти Parrot бояд дошта бошад (). Вақте ки объекти нави Parrot ташкил карда мешавад, функсия __init__ ҳолати ибтидоии объектро тавассути таъин кардани арзишҳое, ки мо дар дохили хосиятҳои объект таъмин мекунем, эҷод мекунад.
Ҳамин тавр, ҳар як мисоли нави синф бо истифода аз __init__() оғоз карда мешавад. Гарчанде ки __init__() метавонад ҳама гуна шумораи параметрҳоро қабул кунад, худ ҳамеша параметри аввал аст.
Истинод ба мисоли синфи фаъол ба далели худидоракунӣ дохил карда мешавад. Параметри худ, ки ба суроғаи объекти ҷории синф пайваст мешавад ва ба мо дастрасӣ ба маълумоти тағирёбандаҳои он (объект) медиҳад, маънои онро дорад.
мисол 1
Мо дар коди боло синферо бо номи Parrot таъсис додем. Баъдан, хосиятҳо муайян карда мешаванд. Хусусиятҳои ашё хосиятҳои он мебошанд. Функсияи __init__ синфи он аст, ки ин хусусиятҳо муайян карда шудаанд.
Вақте ки объект ташкил карда мешавад, усули ибтидоӣ ҳамонест, ки дар аввал даъват карда мешавад. Сипас, мисолҳои синфи Parrot сохта мешаванд. Blaze ва Wonda дар ин маврид истинодҳо (арзишҳо) ба объектҳои нави мо мебошанд. __class .species ба мо имкон медиҳад, ки ба атрибути синф дастрасӣ пайдо кунем.
Ҳар як мисоли синф дорои хусусиятҳои якхела аст. Хусусиятҳои мисолро инчунин бо истифода аз blaze.name ва blaze.age дастрас кардан мумкин аст. Ҳарчанд ҳама намунаҳои синф дорои хосиятҳои беназири мисолҳо мебошанд.
мисол 2
Усулҳои
Функсияҳое, ки дар дохили бадани синф муайян шудаанд, методҳо номида мешаванд. Онҳо барои муайян кардани рафтори ашё истифода мешаванд.
Ду усул, суруд () ва рақс, дар барномаи дар боло зикршуда () муайян карда шудаанд. Азбаски онҳо дар объекти намунавӣ даъват карда мешаванд, ба монанди аланга, онҳо ҳамчун усулҳои намунавӣ номида мешаванд.
Асосҳои консепсияи OOPS
Чор ғояҳои асосии барномасозии ба объект нигаронидашуда инҳоянд:
- Мерос
- Инкапсулясия
- Полиморфизм
- Реферат
Мерос
Одамон аксар вақт ба кӯдакони навзод мегӯянд, ки онҳо хусусиятҳои чеҳра доранд, ки ба чеҳраи волидайни худ монанданд ё хислатҳои мушаххасро аз волидонашон мерос гирифтаанд.
Мумкин аст, ки шумо низ мушоҳида кардаед, ки шумо якчанд хусусиятҳоро бо волидонатон мубодила мекунед. Вазъияти воқеии ҷаҳонӣ ба мерос низ хеле монанд аст.
Аммо, дар ин ҳолат, хусусиятҳои "синфҳои волидайн" ба "синфҳои кӯдакона" интиқол дода мешаванд. Ин ҷанбаҳо дар ин замина ҳамчун "хусусиятҳо" ва "усулҳо" номида мешаванд.
Синф метавонад усулҳо ва атрибутҳои худро аз синфи дигар бо истифода аз усуле, ки ҳамчун мерос маълум аст, ба даст орад. Мерос ин равандест, ки синфи кўдак хосиятҳои синфи волидайнро мегирад.
мисол:
Синфи волидайни Human дар мисоли дар боло овардашуда аз ҷониби кӯдаки синфи Boy мерос гирифта шудааст. Азбаски Boy аз Инсон мерос мегирад, мо метавонем ҳангоми сохтани намунаи синфи Boy ба ҳамаи усулҳо ва атрибутҳои он дастрасӣ пайдо кунем.
Дар синфи писар, усуле бо номи schoolName низ муайян карда шудааст. Объекти синфи волидайн наметавонад ба усули schoolName дастрасӣ пайдо кунад. Бо вуҷуди ин, усули schoolName метавонад тавассути сохтани объекти синфи кӯдакона (Писар) номида шавад.
Инкапсулясия
Додани ҳар як тағирёбанда дар барнома дастрасии глобалӣ ҳангоми кор бо синфҳо ва коркарди маълумоти ҳассос иқдоми оқилона нест.
Бе дастрасии пурра ба барнома ба яке аз ин тағирёбандаҳо, инкапсуляция барои мо механизми ба даст овардани тағирёбандаҳои заруриро фароҳам меорад.
Усулҳое, ки ба таври возеҳ барои ин мақсад муайян шудаанд, метавонанд барои навсозӣ, таҳрир ё нест кардани маълумот аз тағирёбандаҳо истифода шаванд. Ин усули барномасозӣ дорои бартариҳои амният ва назорат аз болои вуруди додаҳо мебошад.
Бубинед, ки дар намоиши зер тағирёбандаҳо чӣ қадар зуд дастрас мешаванд:
Полиморфизм
Фарз мекунем, ки шумо телефони худро барои паймоиш истифода мебаред Instagram наворҳо. Вақте ки шумо хоҳиши гӯш кардани мусиқӣ пайдо шудед, шумо ба Spotify дастрасӣ пайдо кардед ва ба навохтани суруди дӯстдоштаатон шурӯъ кардед.
Пас аз чанд вақт, шумо занг гирифтед, бинобар ин шумо ҳар кореро, ки дар замина мекардед, таваққуф кардед, то ба он ҷавоб диҳед. Дӯсти шумо занг зада хоҳиш кард, ки ба онҳо рақами телефони шахси муайянро нависед.
Ҳамин тавр, шумо ба ӯ рақами телефонро тавассути SMS фиристодед ва корҳои худро идома додед. Оё шумо чизе гирифтаед? Бо танҳо як дастгоҳ - телефони мобилии шумо шумо метавонед дар каналҳо сайр кунед, мусиқӣ гӯш кунед, занг занед ва занг занед ва паёмнависӣ кунед.
Аз ин рӯ, полиморфизмро бо он муқоиса кардан мумкин аст. Poly маънои сершуморро дорад ва морф шаклҳои гуногунро ифода мекунад. Аз ин рӯ, полиморфизм дар маҷмӯъ ба чизе бо шаклҳои гуногун ишора мекунад.
Ё «чизе», ки вобаста ба вазъият метавонад рафторҳои гуногунро нишон диҳад. Дар OOPS, полиморфизм функсияҳоро бо ҳамон номҳо, вале рафторҳои гуногун тавсиф мекунад. Интихобан, имзои функсияи дигар бо ҳамон номи функсия (параметрҳое, ки ба функсия интиқол дода мешаванд).
мисол:
Дар ин ҷо, мо метавонем ҳайвони тағирёбандаро барои такрор кардани объектҳои Зебра ва Харгӯш бо истифода аз усулҳои намунавии онҳо истифода барем. Дар натиҷа, рафтори (ранг() ва мехӯрад()) ҳам Зебра ва ҳам харгӯш дар ин ҷо бо як тағирёбанда бо номи ҳайвон муаррифӣ мешавад. Аз ин рӯ, он ба қоидаҳои полиморфизм риоя мекунад.
Реферат
Барои хондани ин мундариҷа шумо эҳтимолан ноутбук, телефон ё планшетро истифода мебаред. Ҳангоми хондани он, шумо эҳтимолан қайд мекунед, порчаҳои калидиро қайд мекунед ва эҳтимолан баъзе маълумотро дар файлҳои шахсии худ нигоҳ медоред.
Вақте ки шумо инро хондаед, ҳама чизеро мебинед, ки ин "экран" бо маълумотест, ки ба шумо нишон дода мешавад. Шумо танҳо ҳангоми навиштан тугмаҳои клавиатураро мебинед, аз ин рӯ ба шумо лозим нест, ки дар бораи нозукиҳои дохилӣ хавотир нашавед, масалан, чӣ гуна пахш кардани калид метавонад боиси пайдо шудани ин калима дар экран шавад.
Интихобан, чӣ гуна пахш кардани тугма дар экрани шумо метавонад ҷадвали навро оғоз кунад.
Аз ин рӯ, ҳар чизе ки мо дар ин вазъият мушоҳида карда метавонем, абстрактист. Мо метавонем танҳо натиҷаи онро бубинем, на нозукиҳои дохилиро (ки барои мо воқеан муҳим аст).
Ба ин монанд, абстраксия танҳо вазифаҳоеро ошкор мекунад, ки ҳама чиз дар ҳоле ки ҳама гуна амалияҳо ё ҷузъиёти дохилиро пинҳон мекунад.
Ҳадафи асосии абстраксия ин пинҳон кардани маълумоти замина ва ҳама гуна амалисозии додаҳои берунӣ мебошад, то одамон танҳо он чизеро, ки бояд бубинанд, бубинанд. Он дар идоракунии мураккабии код кӯмак мекунад.
мисол:
Дар ин ҷо як синфи абстрактии марбут ба нақлиёт мавҷуд аст. Азбаски он аз синфи абстрактии ABC мерос гирифтааст, он абстрактист. Азбаски усулҳои абстрактӣ муайян карда нашудаанд ё холӣ мемонанд, синфи Vehicle як усули абстрактӣ дорад, ки "Не чархҳо" ном дорад, ки таъриф надорад.
Онҳо синфҳоеро пешбинӣ мекунанд, ки синфҳои абстрактиро мерос мегиранд, то татбиқи методро таъмин кунанд.
Манфиатҳои консепсияҳои OOPS
- Бо инкапсулизатсия, амнияти баланд ва махфияти маълумот ба даст оварда мешавад.
- Фасеҳӣ дар доштани бисёр версияҳои полиморфии ҳамон синф.
- Сатҳи баланди мураккабии код тавассути абстраксия кам карда шуд.
- Ба ҷои он ки садҳо сатрҳои кодро барои дарёфти як мушкилӣ аз назар гузаред, модулияти барномасозӣ ислоҳро содда мекунад.
- Истифодаи такрории код бо сабаби мерос гирифтани хосиятҳои синфи волидайн аз ҷониби синфи кӯдак ба амал меояд.
- Ҳалли самараноки мушкилот имконпазир аст, зеро мо синфҳоеро эҷод мекунем, ки барои ҳар як мушкилоти хурд амалҳои заруриро иҷро мекунанд. Масъалаи зеринро метавон боз ҳам зудтар ҳал кард, зеро мо метавонем ин синфҳоро дубора истифода барем.
хулоса
Хулоса, мо дар бораи ғояҳои OOPS дар Python, гармтарин парадигмаи барномасозӣ дар айни замон фаҳмидем.
Пас аз хондани ин, шумо бояд фаҳмидед, ки парадигмаи OOPS комилан бо идеяи синфҳо ва объектҳо сарукор дорад. ва мафҳумҳои OOPS ба монанди инкапсуляция, полиморфизм, мерос ва абстраксия.
Дин ва мазҳаб