1. परिचय
Python कार्यक्रमहरूमा सामान्यतया देखिने "if **name** == '**main**'" संरचना स्क्रिप्ट कसरी चलाइएको थियो भन्ने निर्धारण गर्ने महत्वपूर्ण विशेषता हो। यो संरचना प्रयोग गरेर, एउटै कोडलाई “प्रत्यक्ष रूपमा चलाइयो” वा “अर्को स्क्रिप्टबाट आयात गरियो” भन्ने आधारमा फरक व्यवहार गराउन सकिन्छ।
यो विशेषता सही रूपमा बुझेर, तपाईंले कोडको पुन: प्रयोगयोग्यता र मर्मतयोग्यता सुधार्न सक्नुहुन्छ, र अधिक प्रभावकारी डिबगिङ तथा परीक्षण सक्षम गर्न सक्नुहुन्छ। यस लेखमा, हामी यस संरचनाको भूमिका, प्रयोग, र फाइदाहरूलाई विस्तृत रूपमा व्याख्या गर्नेछौं, साथै ठोस कोड उदाहरणहरू प्रस्तुत गर्नेछौं।
2. Python को name र main को आधारभूत बुझाइ
Python को विशेष चलनशील name के हो?
जब Python कार्यक्रम चलाइन्छ, केही विशेष चलनशीलहरू स्वचालित रूपमा सिर्जना हुन्छन्। __name__ तिनमध्ये एक हो र यसले चलाइँदै गरेको फाइल (मोड्युल) को नाम भण्डारण गर्छ। सामान्यतया, __name__ चलनशीलले कार्यक्रम कुन मोड्युलबाट चलाइयो भन्ने संकेत गर्दछ।
नोट: मोड्युल र स्क्रिप्ट बीचको भिन्नता
मोड्युल: अन्य फाइलहरूले आयात गरी प्रयोग गर्न डिजाइन गरिएको Python कोड समावेश गर्ने फाइल।
स्क्रिप्ट: प्रोग्रामको रूपमा प्रत्यक्ष चलाइँने Python फाइल, सामान्यतया अन्य फाइलहरूले आयात गर्दैन तर प्रत्यक्ष चलाइन्छ।
उदाहरण: name को व्यवहार
उदाहरणका लागि, example.py नामक फाइललाई तलको सामग्रीसँग कल्पना गर्नुहोस्।
# example.py
print(__name__)
यदि तपाईंले यो फाइललाई प्रत्यक्ष चलाउनुहुन्छ भने, __name__ को मान '__main__' बनिन्छ, र टर्मिनलमा तलको परिणाम देखाइन्छ:
__main__
अर्कोतिर, फाइललाई अर्को फाइलबाट आयात गर्दा, __name__ को मान फाइलनाम 'example' मा सेट हुन्छ, __main__ होइन। यसले देखाउँछ कि __name__ को मान स्क्रिप्ट कसरी चलाइयो भन्ने आधारमा फरक हुन्छ।
main के हो?
Python इन्टरप्रिटरले चलाइँदै गरेको फाइललाई विशेष नाम “__main__” दिन्छ। यसले Python कार्यक्रमलाई “__main__” जाँच गरेर स्क्रिप्ट प्रत्यक्ष चलाइँदैछ कि छैन भन्ने पुष्टि गर्न अनुमति दिन्छ।

3. if **name** == ‘**main**‘ को व्यावहारिक प्रयोग
"if **name** == ‘**main**‘" संरचना प्रयोग गरेर, तपाईंले Python स्क्रिप्ट प्रत्यक्ष चलाइँदा मात्र विशेष कोड चलाउन सक्नुहुन्छ। यो संरचना कोडको व्यवहारमा राम्रो नियन्त्रण प्राप्त गर्न अत्यन्त उपयोगी हुन्छ।
आधारभूत सिन्ट्याक्स
if __name__ == '__main__':
# Code that runs only when the script is executed directly
print("This script is being run directly.")
ठोस उदाहरण
तल calculate.py फाइललाई उदाहरणको रूपमा प्रयोग गर्ने कोड छ। यस फाइलमा एउटा फलन र सर्तीय कथन समावेश छन्।
# calculate.py
def add(a, b):
return a + b
if __name__ == '__main__':
result = add(3, 4)
print("Calculation result:", result)
कार्यान्वयन परिणाम
यदि तपाईंले यो फाइललाई प्रत्यक्ष चलाउनुहुन्छ भने, तलको आउटपुट प्राप्त हुनेछ।
Calculation result: 7
अर्कोतिर, यदि यो calculate मोड्युललाई अर्को फाइलबाट आयात गरियो भने, if __name__ == '__main__' को तलको कोड चल्नेछैन। तल अर्को फाइल main_script.py बाट आयात गरी प्रयोग गर्ने उदाहरण छ।
# main_script.py
import calculate
# When imported, the code under if __name__ == '__main__' in calculate.py is not executed
print(calculate.add(10, 5)) # 15 is printed
जस्तै देखाइयो, "if **name** == ‘**main**‘" संरचना प्रयोग गरेर, स्क्रिप्टलाई प्रत्यक्ष चलाइँदा र अर्को स्क्रिप्टबाट आयात गरिँदा फरक व्यवहार गराउन सकिन्छ।
4. यस संरचना प्रयोग गर्ने फाइदाहरू
1. मोड्युल पुन: प्रयोगयोग्यता सुधार
「if **name** == ‘**main**‘」 प्रयोग गर्दा मोड्युलको पुन: प्रयोगयोग्यता बढ्छ। मोड्युल आयात गरिँदा अनावश्यक कोड चल्नबाट रोक्छ, र आवश्यक भाग मात्र चलाइँदा कोडको मर्मतयोग्यता सुधार्छ।
2. परीक्षण सजिलो बनाउँछ
if __name__ == '__main__' भित्र परीक्षण वा डिबग कोड राखेर, विकासको क्रममा सजिलै परीक्षण चलाउन सकिन्छ। मोड्युल आयात गरिँदा परीक्षण कोड चल्दैन, जसले डिबगिङलाई अधिक प्रभावकारी बनाउँछ।
उदाहरण परीक्षण कोड
आउनुहोस्, calculate.py मा एउटा सरल परीक्षण थपौं।
# calculate.py
def add(a, b):
return a + b
if __name__ == '__main__':
# Test code
print("3 + 4 =", add(3, 4))
print("10 + 5 =", add(10, 5))
यसरी, सरल परीक्षणहरू केवल मोड्युल सिधै चलाइँदा मात्र चलाइँदा, मोड्युललाई अन्य कोडले आयात गर्दा परीक्षणहरू चल्दैनन्, र केवल आवश्यक कार्यहरू प्रयोग गरिनेछन्। 
५. सावधानीहरू र उत्तम अभ्यासहरू
सावधानीहरू
- कोड स्पष्टता सुधार्नुहोस्
if __name__ == '__main__'परीक्षण र कार्यान्वयन कोडलाई यस बिन्दु तल राख्नुहोस् ताकि फाइलभित्र जिम्मेवारीहरू स्पष्ट रूपमा विभाजन होस्। आयात गर्दा चल्न नुपर्ने भागहरू सर्तभित्र राख्नुहोस् जसले अनावश्यक कोड आकस्मिक रूपमा नचलोस्। - परिपत्र आयातहरूमा सावधान रहनुहोस् यदि धेरै फाइलहरूले
if __name__ == '__main__'प्रयोग गरेर एकअर्कालाई आयात गर्छन् भने, परिपत्र आयातहरूबाट बच्न ध्यान दिनुहोस्। जटिल मोड्युल निर्भरता परिपत्र आयातको जोखिम बढाउँछ, त्यसैले निर्भरता सरल राख्ने प्रयास गर्नुहोस्।
उत्तम अभ्यासहरू
- परीक्षण कोडलाई मुख्य ब्लकमा राख्नुहोस्
if __name__ == '__main__'भित्र परीक्षण कोड राखेर, मोड्युललाई अन्य कोडले आयात गर्दा अनावश्यक कार्यान्वयन रोक्न सकिन्छ। मोड्युल सिधै चलाइँदा मात्र परीक्षण चल्ने सुनिश्चित गर्दा अनपेक्षित व्यवहारबाट बच्न मद्दत गर्छ। - सम्बन्धित कार्यहरूलाई सँगै समूहबद्ध गर्नुहोस्
if __name__ == '__main__'भित्र सम्बन्धित कार्यहरूलाई समूहबद्ध गरी आवश्यकतानुसार कल गर्दा, कोड संक्षिप्त, पढ्न सजिलो, र मर्मत गर्न सरल रहन्छ।
६. सारांश
“if name == ‘main‘” संरचना पायथन स्क्रिप्ट कसरी चलाइयो भन्ने निर्धारण गर्ने सुविधाजनक तरिका हो। यो संरचना प्रयोग गरेर, तपाईंले कोड केवल स्क्रिप्ट सिधै चलाइँदा मात्र चल्ने सुनिश्चित गर्न सक्नुहुन्छ, जसले मोड्युल पुन: प्रयोगयोग्यता सुधार्छ र परीक्षणलाई सजिलो बनाउँछ। पायथनमा प्रोग्रामिङ गर्दा, यो संरचनालाई प्रभावकारी रूपमा प्रयोग गर्नुहोस् र स्क्रिप्ट तथा मोड्युलहरूलाई उपयुक्त रूपमा विभाजन गर्नुहोस् जसले कोडको मर्मतयोग्यता र पुन: प्रयोगयोग्यता बढाउँछ।



