აბსტრაქცია და აბსტრაქცია პითონში

ლაშა მეგრელიშვილი

ლაშა მეგრელიშვილი

აბსტრაქცია და აბსტრაქცია პითონში

რატომ პითონი?

პითონი არის მარტივად სასწავლი ენა ნაკლები სიმბოლოებით და “ადვილი” სინტაქსით. დაახლოებით 30 წლის წინ შეიქმნა, თუმცა ძალიან პოპულარული გახდა ასე ბოლო ათი წლის მანძილზე, განსაკუთრებით სამეცნიერო გამოთვლების, ხელოვნური ინტელექტის, მონაცემთა მეცნიერების, კრიპტოვალუტების და დიდი საიტების ბექის მიმართულებით და ასე შემდეგ. პითონის კიდევ ერთი უპირატესობაა მისი სიმძლავრე და ეს არის მისი ნაკლიც!

რატომ?

მაგალითად მონაცემებთან მუშაობისას შეგიძლია გამოიყენო, როგორც პითონი ასევე ექსელი, შედარება რომ გავაკეთოთ პითონი ნაჯახია და ექსელი მაკრატელი, ხეებს მაკრატლით ვერ მოჭრი და ათასობით ქაღალდის ფურცლის გასჭრელად რა თქმა უნდა მაკრატელი ჯობია, თუმცა პითონით არჩევანი გაცილებით დიდია პროფესიული განვითარებისთვის.

აბსტრაქცია

პითონი არის მაღალი დონის პროგრამირების ენა, ანუ პითონი უფრო აბსტრაქტულია ვიდრე C! მახსოვს ასეთი წინადადება მათემატიკის სახელმძშვანელოს შესავალიდან “მათემატიკა აბსტაქტული მეცნიერებაა“.

რას ნიშნავს სიტყვა “აბსტრაქტული“?

რამდენია ორ ვაშლს მივუმატოთ კიდევ ორი ვაშლი? პასუხია ოთხი ვაშლი!

რამდენია ორ ვაშლს დავუმატოთ ორი მსხალი? ერთი პასუხია ორი ვაშლი და ორი მსხალი, ანუ შეკრების მოქმედება არ განვახორციელეთ!

მეორე პასუხია: ოთხი! ანუ გავაკეთეთ აბსტრაქცია, მხედველობაში მივიღეთ მხოლოდ რაოდენობები, ანუ საგნები ერთმანეთს შევადრეთ რაღაც ნიშნით, ისინი გავაერთიანეთ ცალობით და აღარ ვუყურებთ რა არის ცალობის უკან! კი მართალია ბევრი რამით განსხვავდებიან ერთმანეთისგან, მაგრამ ორივე ხილია და ჩვენ ისინი უბრალოდ დავთვალეთ ისე რომ არ გავითვალისწინეთ ნივთების იდენტობა, მარტივად რო ვთქვათ ცალში შიგნით რა დევს არ მაიტერესებს!

პითონშიც ასეა! კოდის წერის დროს ვიყენებ პითონის, ესე ვთქვათ, რაღაც მზა საშუალებებს, რომლებიც ამოცანის გადაღჭრაში მეხმარებიან და სულ არ მაინტერესებს ამ საშუალებებში შიგნით რა ხდება, როგორ მუშაობენ, როგორ მიკეთებენ საქმეს-რაც მჭირდება, ანუ პითონი თვითონ აკეთებს რაღაც პროცესების მენეჯმენტს ისე, რომ მე საერთოდ არ ვფიქრობ მაგაზე.

სხვა კუთხით შევხედოთ აბსტრაქტულობას!

ტიპები და ობიექტები

პითონი შედგება ობიექტებისგან და ეს ობიექტები დალგუფებულები არიან ტიპებად. ტიპიც აბსტრაქტული რამეა!

რა არის ტიპი?

ტიპი ესე პირდაპირ რომ გადმოვთარგნოთ არის სახეობა. ანუ იმ ნიშან-თვისებების და შესაძლებლობების აღწერა, რაც ახასიათებს ამ სახეობის ყოველ წევრს. კიდევ ერთხელ, ის მახასიათებლები რომლებიც რაიმე სიმრავლის ყოველ ელემენტს აერთიანებს-საერთო აქვს დანარჩენებთან არის ტიპი და სიმრავლის ელემენტები არიან ობიექტები!

პითონის ტიპები შეგვიძლია გავყოთ ორ ნაწილად: დაბალი დონის ტიპები, რომლებსაც არ ჭირდებათ კომპლექსური სტრუქტურა, შესაბამისად ნაკლები მეხსიერება მიაქვთ და ტიპები, რომლებიც კლასებივით არიან იმპლმენტირებული-გაწერილი, პითონში ტიპების რაღაც ნაწილი პრაქტიკულად კლასებია.

რა არის კლასი?

კლასიც აბსტრაქტული რამეა. კლასი არის ზოგადი სტრუქტურა, რომელიც საერთოა ამ კლასის მიხედვით შექმნილი ყველა ობიექტებისთვის. კლასი არის ყალიბივით! წარმოვიდგინოთ მაგიდის ტენისის ბურთების ჩამოსასხმელი ყალიბი, რომელშიც ადუღებულ პლასტმასს ასხამენ და რომ გაცივდება მერე ორ ნახევარსფეროს ერთმანეთს ადუღებენ თუ აწებებენ! რამდენი ბურთიც არ უნდა ჩამოვასხათ ამ ყალიბით ყველას ექნება ერთი და იგივე ზომა და ფორმა, მაგრამ ჩვენ შეგვიძლია პლასტმასის ქიმიური შემადგენლობა ბურთიდან ბურთამდე ისე ვცვალოთ, რომ ბურთებს სვადასხანაირი თვისებებიც ქონდეთ, მაგალითად ერთმანეთისგან განსხვავდებოდნენ ფერებით, ხტუნავდნენ სხვადასხვანაირად და ასე შემდეგ…

ჩვენ შეგვიძლია კლასის გამოყენებით შევქმნათ ობიექტი, ეს არის დედუქცია ანუ პროცესი აბსტრაქტულიდან კონკრეტულისკენ, ანუ ობიექტი არის კლასის კერძო შემთხვევა და პირიქით ჩვენ შეგვიძლია ობიექტისგან აღვადგინოთ კლასი და ამას ქვია ინდუქცია ანუ პროცესი კონკრეტულიდან აბსტრაქტულისკენ, რაც არის სტატისტიკა-კერძო შემთხვევებიდან ზოგადი კანონზომიერების აღდგენა!

დასკვნის სახით შეგვიძლია ვთქვათ, რომ პითონი არის აბსტრაქტული პროგრამირების ენა, იგი შედგება აბსტრაქტული ტიპების და კლასებისგან და მათი შეაბამისი კონკრეტული ობიექტებისგან.