სარჩევი[დამალვა][ჩვენება]
ეს ლექცია მოიცავს Python-ის მოდულებსა და პაკეტებს.
ისინი თქვენი კოდის ფაილების სახით ორგანიზების საშუალებაა და ძალიან მნიშვნელოვანია, თუ აპირებთ ვებ აპლიკაციების შექმნას Python-ით
მოდულები
პითონის მოდული ძირითადად არის ფაილი პითონის კოდით, რომელსაც ვიყენებთ ჩვენი კოდის ფაილებად ორგანიზებისთვის. იფიქრეთ იმაზე, როგორც სექციები სუპერმარკეტში. როდესაც სუპერმარკეტში მიდიხართ, არის ხილის, ბოსტნეულის, საწმენდი საშუალებების სხვადასხვა განყოფილება. თქვენ არ ხედავთ ერთ განყოფილებას ყველა პროდუქტით.
პროგრამირებაშიც იგივე კონცეფციაა. იმის ნაცვლად, რომ დავწეროთ მთელი ჩვენი კოდი ყველა ფუნქციით და კლასებით main.py-ში, ჩვენ ვყოფთ ჩვენს კოდს მრავალ ფაილად. თითოეულ ფაილს მოიხსენიებენ, როგორც მოდულს. ამით, არა მხოლოდ ჩვენი კოდი უკეთ არის ორგანიზებული და სტრუქტურირებული, არამედ ჩვენ გვაქვს შესაძლებლობა ხელახლა გამოვიყენოთ ჩვენი კოდი. ვნახოთ ეს მაგალითის საშუალებით.
მოდით განვსაზღვროთ წონის გადაყვანის ორი ფუნქცია ფუნტიდან კილოგრამამდე და პირიქით.
def lbs_to_kg(weight):
return weight * 0.45
def kg_to_lbs(weight):
return weight / 0.45
ახლა ჩვენ შეგვიძლია ავიღოთ ეს ორი ფუნქცია და ჩავდოთ ისინი ცალკე მოდულში სახელწოდებით „კონვერტერები“, შემდეგ კი მისი იმპორტი შეიძლება ნებისმიერ პროგრამაში, რომელსაც ესაჭიროება გადამყვანის ფუნქციები. ნება მომეცით გაჩვენოთ როგორ გააკეთოთ ეს.
მოდით გავხსნათ ჩვენი პროექტის პანელი და დააწკაპუნოთ მასზე მარჯვენა ღილაკით და დავამატოთ ახალი ფაილი. ჩვენ ვაპირებთ ამ ფაილს დავარქვათ "Converters.py".
ახლა დააკოპირეთ კოდი ნაგულისხმევი ფაილიდან და ჩასვით "Converters.py"-ში.
ამით ჩვენ გავასუფთავეთ ჩვენი მთავარი მოდული და ის არ არის გაბერილი სხვადასხვა ფუნქციებით. რაც უფრო მეტ ფუნქციას ვწერთ კლასებთან, ვათავსებთ მათ შესაბამის მოდულებში. მოდული უნდა შეიცავდეს ყველა შესაბამის ფუნქციას და კლასს. ახლა ჩვენ გვინდა გადამყვანების მოდულის იმპორტირება ჩვენს აპლიკაციის მოდულში. ამისათვის დაწერეთ import converters
ზევით გაფართოების გარეშე „.py“.
ჩვენ შეგვიძლია წვდომა მოდულის წევრებზე მეთოდების მსგავსი წერტილოვანი ოპერატორის გამოყენებით.
გადავიყვანოთ 70 კგ ფუნტებად:
ასევე არსებობს სხვა სინტაქსი მოდულების იმპორტისთვის. მთლიანი მოდულის იმპორტის ნაცვლად, ჩვენ შეგვიძლია იმ მოდულიდან კონკრეტული ფუნქციების იმპორტი. შეგვიძლია აკრიფოთ from Converters import
და დააჭირეთ „control + space“ ხელმისაწვდომი ფუნქციების სიის საჩვენებლად. ამით ჩვენ შეგვიძლია პირდაპირ ვუწოდოთ ეს ფუნქცია.
განახორციელოს
აქ არის თქვენი ვარჯიში.
ეს ეხება სავარჯიშოს ლექციიდან, სადაც განვიხილეთ ”მარყუჟებისთვის” სადაც დავწერეთ პროგრამა სიიდან ყველაზე დიდი რიცხვის გასარკვევად
numbers = [8, 3, 6, 10, 5]
max = numbers[0]
for number in numbers:
if number > max:
max = number
print(max)
ამ კოდს ამჟამად არ აქვს ორგანიზაცია. ჩვენ არ გვაქვს არანაირი ფუნქცია ან მოდული და პროგრამა იწერება ერთ ფაილში. ეს კარგია მცირე პროგრამებისთვის, მაგრამ როცა თქვენი პროგრამები იზრდება, თქვენ უნდა სწორად მოაწყოთ თქვენი კოდი კლასებად და მოდულებად. ამიტომ, ამ სავარჯიშოს ფარგლებში, მინდა დაწეროთ ფუნქცია, დარეკოთ find_max
. ამ ფუნქციამ უნდა მიიღოს სია და დააბრუნოს ყველაზე დიდი რიცხვი ამ სიაში. ამის შემდეგ განაგრძეთ და განათავსეთ ეს ფუნქცია ცალკე მოდულში, ამოიღეთ იგი აქედან და ჩადეთ მოდულში ე.წ utils
. ეს მოდული უნდა შეიცავდეს უამრავ სასარგებლო ფუნქციას. იმპორტი utils
მოდული მიმდინარე მოდულში და დარეკეთ find_max
ფუნქცია. ბოლოს მიიღეთ შედეგი და დაბეჭდეთ ტერმინალზე.
ეს სავარჯიშო ცოტა რთულია, მაგრამ ადვილად შესასრულებელი.
Solution
დაიწყეთ ფუნქციის განსაზღვრით find_max
და დაამატეთ პარამეტრი, რომელსაც ეწოდება ნომრები. ამ ფუნქციის შიგნით ჩაწერეთ ალგორითმი სიაში ყველაზე დიდი რიცხვის საპოვნელად.
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
შეინახეთ ეს კოდი ფაილში "utils.py", როგორც მოდული.
დაუბრუნდით ჩვენს მთავარ პროგრამას, უბრალოდ შემოიტანეთ მოდული ორი სინტაქსით და უბრალოდ შეასრულეთ ლოგიკა.
ერთი რამ, რაზეც თქვენი ყურადღება უნდა გავამახვილო, არის დაქვეითებული max
. ამის მიზეზი არის max
არის ჩაშენებული ფუნქცია Python-ში და ჩვენ მას ხელახლა განვსაზღვრავთ. ასე რომ, ეს გაფრთხილებაა პითონის შემდგენელი რომ მის ჩაშენებულ ფუნქციად max-ს ვეღარ გამოვიყენებთ.
ჩაშენებული მოდულები პითონში
პითონს გააჩნია სტანდარტული ბიბლიოთეკა, რომელიც შეიცავს რამდენიმე მოდულს საერთო ამოცანებისთვის, როგორიცაა ელ.ფოსტის გაგზავნა, თარიღთან და დროსთან მუშაობა, შემთხვევითი მნიშვნელობებისა და პაროლების გენერირება და ა.შ. იმდენი მოდულია უკვე ჩაშენებული პითონში, რაც იმას ნიშნავს, რომ უკვე ბევრი ფუნქციაა, რომელიც შეგვიძლია ხელახლა გამოვიყენოთ. თქვენ შეგიძლიათ იპოვოთ ეს მოდულები აქ დაწკაპუნებით.
პაკეტები
პაკეტები ძირითადად მოდულების თავზე ჩვენი კოდის ორგანიზების კიდევ ერთი გზაა. რეალური პროექტი შეიძლება შეიცავდეს ასობით ან თუნდაც ათასობით მოდულს და დროთა განმავლობაში ჩვენი დირექტორია ამდენი ფაილით გაფუჭდება. ამიტომ, უკეთესი მიდგომაა დაკავშირებული მოდულების ორგანიზება პაკეტის შიგნით, რაც პაკეტს კონტეინერად აქცევს მრავალი მოდულისთვის.
პროექტს ემატება ახალი დირექტორია და ყველა დაკავშირებული მოდული ემატება ამ დირექტორიას. მაგალითად, იფიქრეთ სავაჭრო ცენტრში. სავაჭრო ცენტრში არის მამაკაცის, ქალის და საბავშვო ტანსაცმლის სხვადასხვა განყოფილება, რომლებიც პაკეტების მსგავსია. თითოეულ განყოფილებას აქვს სხვადასხვა ზონა სხვადასხვა სახის პროდუქციისთვის, როგორიცაა ფეხსაცმელი, მაისურები და ქურთუკები. იფიქრეთ მათზე, როგორც მოდულებზე.
ვნახოთ, როგორ შევქმნათ და გამოვიყენოთ პაკეტები Python-ში.
პირველი, დაამატეთ ახალი დირექტორია პროექტის პანელიდან. მოდით ვუწოდოთ მას "ელექტრონული კომერცია". ეს პაკეტი შეიცავს ელექტრონული კომერციის აპლიკაციასთან დაკავშირებულ ყველა მოდულს.
ის ჯერ კიდევ ცარიელი დირექტორია და პაკეტად გადასაყვანად, მასში სპეციალური ფაილი უნდა შევქმნათ. დაამატეთ ახალი პითონის ფაილი ამ დირექტორიაში და დაასახელეთ ეს ფაილი "__init__". ეს არის სპეციალური კონვენცია პითონში და როდესაც პითონის თარჯიმანი ხედავს ამ სახელწოდების ფაილს დირექტორიაში, ის განიხილავს ამ დირექტორიას, როგორც პაკეტს.
ჩვენ ასევე გვაქვს ალტერნატიული და ლაკონური მეთოდი პაკეტის შესაქმნელად. უბრალოდ დააწკაპუნეთ პროექტის პანელზე და შექმენით პითონის პაკეტი სიიდან. დაარქვით „ელექტრონული კომერცია“ და ეს არის ის. ის ავტომატურად შექმნის დირექტორიას პითონის ფაილით სახელად "__init__".
ახლა მოდით შევქმნათ მოდული პაკეტში და დავარქვათ „მიწოდება“. ამ მოდულში შევქმნათ მარტივი ფუნქცია ტრანსპორტირების ხარჯების გამოსათვლელად.
def calc_shipping():
print("calc_shipping")
ჩვენს მთავარ მოდულში ამ ფუნქციაზე წვდომისთვის, ჩვენ უნდა შევიდეთ მას ელექტრონული კომერციის პაკეტის საშუალებით. კიდევ ერთხელ გვაქვს ამ მოდულის იმპორტის ორი მეთოდი.
პირველ მეთოდში შეგვიძლია მთელი მოდულის იმპორტი და შემდეგ დამოუკიდებლად ფუნქციის გამოძახება ასე:
import eCommerce.shipping
eCommerce.shipping.calc_shipping()
თუმცა, ამ მიდგომით, ამ მოდულის ერთ-ერთი ფუნქციის გამოძახება მოითხოვს მის პრეფიქსს eCommerce.shipping.
ეს ძალიან მრავლისმეტყველია. ასე რომ, პაკეტებთან მუშაობისას ჩვენ ხშირად ვიყენებთ მეორე მიდგომას და ვიყენებთ from
განცხადებაში.
from eCommerce.shipping import calc_shipping
calc_shipping()
თუ თქვენ გაქვთ რამდენიმე ფუნქცია ერთ მოდულში, შეგიძლიათ შემოიტანოთ ისინი ყველა ერთ ხაზზე, მათ შორის მძიმეებით. ვთქვათ, არის გადასახადის გამოანგარიშების სხვა ფუნქცია ჩვენს გადაზიდვის მოდულში. ეს იქნება შემოტანილი შემდეგნაირად:
from eCommerce.shipping import calc_shipping, calc_tax
თქვენ ასევე შეგიძლიათ ინდივიდუალური მოდულების იმპორტი და დატოვოთ ფუნქციები პროგრამის შემდგომ ეტაპზე გამოსაძახებლად. მოდით შემოვიტანოთ მოდულის მიწოდება და შემდეგ გამოვიყენოთ წერტილის ოპერატორი ფუნქციის გამოსაძახებლად calc_shipping.
from eCommerce import shipping
shipping.calc_shipping()
Გახვევა!
პაკეტები და მოდულები ძალიან მნიშვნელოვანია Python-ში. განსაკუთრებით, როდესაც გსურთ იმუშაოთ ისეთი ჩარჩოებით, როგორიცაა Django, რომელიც გამოიყენება მშენებლობისთვის ვებ პროგრამები პითონთან ერთად. ჩვენ განვიხილავთ ჯანგოს სხვა პითონის კურსის დროს.
ეს იყო ბოლო ჩვეულებრივი ლექცია ამ სერიის. შემდეგი ლექცია გადაიხრება ჩვენი ჩვეული ფორმატიდან და გავიგებთ რამდენიმე მნიშვნელოვან გამოყენებას პითონში. ეს ნიშნავს ამ სერიის დასასრულს და ჩვენ გადავალთ ჩვენს შემდეგ Python სერიაზე. დარჩით ამისთვის.
დატოვე პასუხი