विषयसूची[लुकाउनुहोस्][देखाउनु]
यो व्याख्यान 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" विस्तार बिना शीर्षमा।
हामी विधिहरू जस्तै डट अपरेटर प्रयोग गरेर मोड्युलका सदस्यहरू पहुँच गर्न सक्छौं।
७० किलोग्रामलाई पाउन्डमा रूपान्तरण गरौं:
त्यहाँ मोड्युलहरू आयात गर्नको लागि अर्को वाक्यविन्यास पनि छ। सम्पूर्ण मोड्युल आयात गर्नुको सट्टा, हामी त्यो मोड्युलबाट विशेष प्रकार्यहरू आयात गर्न सक्छौं। हामी टाइप गर्न सक्छौं from Converters import
र उपलब्ध कार्यहरूको सूची देखाउन "कन्ट्रोल + स्पेस" थिच्नुहोस्। यसको साथ, हामी सीधा यो प्रकार्य कल गर्न सक्छौं।
व्यायाम
यहाँ तपाईंको व्यायाम छ।
यो व्याख्यानको अभ्याससँग सम्बन्धित छ जहाँ हामीले छलफल गर्यौं "लूप को लागीजहाँ हामीले सूचीबाट सबैभन्दा ठूलो संख्या पत्ता लगाउन एउटा कार्यक्रम लेख्यौं
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
समारोह। अन्तमा, परिणाम प्राप्त गर्नुहोस् र यसलाई टर्मिनलमा छाप्नुहोस्।
यो अभ्यास अलि चुनौतीपूर्ण तर सजिलै गर्न सकिने छ।
समाधान
एक प्रकार्य परिभाषित गरेर सुरु गर्नुहोस् find_max
र नम्बरहरू नामक प्यारामिटर थप्नुहोस्। यस प्रकार्य भित्र, सूचीमा सबैभन्दा ठूलो संख्या फेला पार्नको लागि एल्गोरिदम लेख्नुहोस्।
def find_max(numbers):
max = numbers[0]
for number in numbers:
if number > max:
max = number
return max
यो कोडलाई मोड्युलको रूपमा "utils.py" फाइलमा बचत गर्नुहोस्।
हाम्रो मुख्य कार्यक्रममा फर्कनुहोस्, केवल दुई सिन्ट्याक्सहरू मध्ये कुनै एकद्वारा मोड्युल आयात गर्नुहोस् र केवल तर्कलाई कार्यान्वयन गर्नुहोस्।
एउटा कुरा, मैले तपाइँको ध्यानाकर्षण गराउनु पर्छ कमजोरी हो max
। त्यसको कारण हो max
पाइथनमा निर्मित प्रकार्य हो र हामी यसलाई पुन: परिभाषित गर्दैछौं। त्यसैले यो एक चेतावनी हो पाइथन कम्पाइलर कि हामी अब max लाई यसको बिल्ट-इन प्रकार्यको रूपमा प्रयोग गर्न सक्दैनौं।
पाइथनमा निर्मित मोड्युलहरू
पाइथन एक मानक पुस्तकालयको साथ आउँछ जसमा सामान्य कार्यहरू जस्तै इमेलहरू पठाउने, मिति र समयसँग काम गर्ने, अनियमित मानहरू र पासवर्डहरू उत्पन्न गर्ने जस्ता धेरै मोड्युलहरू समावेश छन्। त्यहाँ धेरै मोड्युलहरू पहिले नै पाइथनमा निर्मित छन् जसको मतलब त्यहाँ पहिले नै धेरै प्रकार्यहरू छन् जुन हामीले पुन: प्रयोग गर्न सक्छौं। तपाईंले यी मोड्युलहरू फेला पार्न सक्नुहुन्छ यहाँ.
प्याकेजहरू
प्याकेजहरू मूलतः हाम्रो कोडलाई मोड्युलहरूको शीर्षमा व्यवस्थित गर्ने अर्को तरिका हो। एक वास्तविक परियोजनाले सयौं वा हजारौं मोड्युलहरू समावेश गर्न सक्छ र समयसँगै हाम्रो डाइरेक्टरी धेरै फाइलहरूसँग फुलिनेछ। त्यसकारण, एक राम्रो दृष्टिकोण भनेको प्याकेज भित्र सम्बन्धित मोड्युलहरू व्यवस्थित गर्नु हो जसले प्याकेजलाई बहु मोड्युलहरूको लागि कन्टेनर बनाउँछ।
परियोजनामा नयाँ डाइरेक्टरी थपिएको छ र सबै सम्बन्धित मोड्युलहरू त्यस डाइरेक्टरीमा थपिएका छन्। उदाहरणको रूपमा, मलको बारेमा सोच्नुहोस्। त्यहाँ एक मल मा पुरुष, महिला र बच्चाहरु को पोशाक को लागी विभिन्न खण्डहरु छन् जुन प्याकेज जस्तै छन्। प्रत्येक खण्डमा विभिन्न प्रकारका उत्पादनहरू जस्तै जुत्ता, टी-शर्ट र ज्याकेटहरूका लागि फरक क्षेत्रहरू छन्। यी मोड्युलहरूको रूपमा सोच्नुहोस्।
आउनुहोस्, पाइथनमा प्याकेजहरू कसरी बनाउने र प्रयोग गर्ने भनेर हेरौं।
पहिले, परियोजना प्यानलबाट नयाँ निर्देशिका थप्नुहोस्। यसलाई "ईकमर्स" भनौं। यो प्याकेजले eCommerce अनुप्रयोगसँग सम्बन्धित सबै मोड्युलहरू समावेश गर्नेछ।
यो अझै पनि खाली डाइरेक्टरी हो र यसलाई प्याकेजमा रूपान्तरण गर्न, हामीले यसमा एउटा विशेष फाइल सिर्जना गर्न आवश्यक छ। यस डाइरेक्टरीमा नयाँ पाइथन फाइल थप्नुहोस् र त्यो फाइललाई "__init__" नाम दिनुहोस्। यो पाइथनमा विशेष कन्भेन्सन हो र जब पाइथन अनुवादकले डाइरेक्टरीमा यस नामको फाइल देख्छ, यसले यो डाइरेक्टरीलाई प्याकेजको रूपमा व्यवहार गर्दछ।
हामीसँग प्याकेज सिर्जना गर्न वैकल्पिक र संक्षिप्त विधि पनि छ। केवल परियोजना प्यानलमा दायाँ क्लिक गर्नुहोस् र सूचीबाट पाइथन प्याकेज सिर्जना गर्नुहोस्। यसलाई "eCommerce" नाम दिनुहोस् र यो हो। यसले स्वचालित रूपमा "__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()
लपेट्नुहोस्!
प्याकेज र मोड्युलहरू पाइथनमा धेरै महत्त्वपूर्ण छन्। विशेष गरी, जब तपाईं Django जस्तो फ्रेमवर्कसँग काम गर्न चाहनुहुन्छ जुन निर्माणको लागि प्रयोग गरिन्छ वेब अनुप्रयोगहरू पाइथन संग। हामी अर्को पाइथन कोर्सको समयमा Django मा हेर्नेछौं।
यो शृङ्खलाको अन्तिम परम्परागत व्याख्यान थियो। अर्को लेक्चर हाम्रो सामान्य ढाँचाबाट विचलित हुनेछ र हामी Python मा केही महत्त्वपूर्ण प्रयोग केसहरू सिक्नेछौं। यसले यस शृङ्खलाको अन्त्यलाई चिन्ह लगाउँदछ र हामी हाम्रो अर्को पाइथन श्रृंखलामा जान्छौं। यसको लागि सम्पर्कमा रहनुहोस्।
जवाफ छाड्नुस्