पायथन मॉड्यूल: कस्टम और बिल्ट-इन मॉड्यूल बनाना और आयात करना सीखें

इस लेख में, आप पायथन में कस्टम मॉड्यूल बनाना और आयात करना सीखेंगे। इसके अलावा, आप पायथन में कस्टम और बिल्ट-इन मॉड्यूल के आयात और उपयोग के लिए अलग-अलग तकनीक पाएंगे।

वीडियो: पायथन मॉड्यूल

पायथन में मॉड्यूल क्या हैं?

मॉड्यूल एक फ़ाइल को संदर्भित करता है जिसमें पायथन कथन और परिभाषाएं हैं।

उदाहरण के लिए, पायथन कोड वाली एक फ़ाइल: example.pyको एक मॉड्यूल कहा जाता है, और इसका मॉड्यूल नाम होगा example

हम छोटे प्रबंधनीय और संगठित फाइलों में बड़े कार्यक्रमों को तोड़ने के लिए मॉड्यूल का उपयोग करते हैं। इसके अलावा, मॉड्यूल कोड की पुन: प्रयोज्य प्रदान करते हैं।

हम अपने सबसे अधिक उपयोग किए जाने वाले कार्यों को एक मॉड्यूल में परिभाषित कर सकते हैं और इसे आयात कर सकते हैं, बजाय उनकी परिभाषा को अलग-अलग कार्यक्रमों में कॉपी कर सकते हैं।

हमें एक मॉड्यूल बनाते हैं। निम्नलिखित टाइप करें और इसे इस रूप में सहेजें example.py

 # Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result

यहां, हमने add()एक मॉड्यूल नाम के फ़ंक्शन को परिभाषित किया है example। फ़ंक्शन दो संख्याओं में लेता है और उनकी राशि लौटाता है।

पायथन में मॉड्यूल कैसे आयात करें?

हम एक मॉड्यूल के अंदर की परिभाषाओं को दूसरे मॉड्यूल या पायथन में इंटरएक्टिव इंटरप्रेटर आयात कर सकते हैं।

हम ऐसा करने के लिए importकीवर्ड का उपयोग करते हैं। हमारे पहले से परिभाषित मॉड्यूल को आयात करने के लिए example, हम पायथन प्रॉम्प्ट में निम्नलिखित टाइप करते हैं।

 >>> import example

यह exampleवर्तमान प्रतीक तालिका में सीधे परिभाषित कार्यों के नामों को आयात नहीं करता है । यह केवल exampleवहाँ मॉड्यूल नाम आयात करता है ।

मॉड्यूल नाम का उपयोग करके हम डॉट .ऑपरेटर का उपयोग करके फ़ंक्शन तक पहुंच सकते हैं । उदाहरण के लिए:

 >>> example.add(4,5.5) 9.5

पायथन में मानक मॉड्यूल के टन हैं। आप पायथन मानक मॉड्यूल और उनके उपयोग के मामलों की पूरी सूची देख सकते हैं। ये फ़ाइलें उस स्थान के अंदर लीब डायरेक्टरी में हैं जहाँ आपने पायथन को स्थापित किया था।

मानक मॉड्यूल उसी तरह से आयात किए जा सकते हैं जैसे हम अपने उपयोगकर्ता-परिभाषित मॉड्यूल को आयात करते हैं।

मॉड्यूल आयात करने के कई तरीके हैं। वे नीचे सूचीबद्ध हैं …

पायथन आयात बयान

हम importकथन का उपयोग करके एक मॉड्यूल आयात कर सकते हैं और ऊपर वर्णित के अनुसार डॉट ऑपरेटर का उपयोग करके इसके अंदर परिभाषाओं तक पहुंच सकते हैं। यहाँ एक उदाहरण है।

 # import statement example # to import standard module math import math print("The value of pi is", math.pi)

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 पाई का मूल्य 3.141592653589793 है

नाम बदलने के साथ आयात करें

हम निम्नानुसार इसका नाम बदलकर एक मॉड्यूल आयात कर सकते हैं:

 # import module by renaming it import math as m print("The value of pi is", m.pi)

हमने mathमॉड्यूल का नाम बदल दिया है m। यह हमें कुछ मामलों में टाइपिंग का समय बचा सकता है।

ध्यान दें कि नाम mathहमारे दायरे में मान्यता प्राप्त नहीं है। इसलिए, math.piअमान्य है, और m.piसही कार्यान्वयन है।

अजगर से … आयात बयान

हम पूरे मॉड्यूल के बिना मॉड्यूल से विशिष्ट नाम आयात कर सकते हैं। यहाँ एक उदाहरण है।

 # import only pi from math module from math import pi print("The value of pi is", pi)

यहां, हमने मॉड्यूल piसे केवल विशेषता आयात की mathहै।

ऐसे मामलों में, हम डॉट ऑपरेटर का उपयोग नहीं करते हैं। हम कई विशेषताओं को निम्नानुसार आयात कर सकते हैं:

 >>> from math import pi, e >>> pi 3.141592653589793 >>> e 2.718281828459045

सभी नाम आयात करें

हम निम्नलिखित निर्माण का उपयोग करके मॉड्यूल से सभी नाम (परिभाषाएं) आयात कर सकते हैं:

 # import all names from the standard module math from math import * print("The value of pi is", pi)

यहां, हमने गणित मॉड्यूल से सभी परिभाषाओं को आयात किया है। इसमें अंडरस्कोर (निजी परिभाषा) के साथ शुरुआत को छोड़कर हमारे दायरे में दिखाई देने वाले सभी नाम शामिल हैं।

Importing everything with the asterisk (*) symbol is not a good programming practice. This can lead to duplicate definitions for an identifier. It also hampers the readability of our code.

Python Module Search Path

While importing a module, Python looks at several places. Interpreter first looks for a built-in module. Then(if built-in module not found), Python looks into a list of directories defined in sys.path. The search is in this order.

  • The current directory.
  • PYTHONPATH (an environment variable with a list of directories).
  • The installation-dependent default directory.
 >>> import sys >>> sys.path ('', 'C:\Python33\Lib\idlelib', 'C:\Windows\system32\python33.zip', 'C:\Python33\DLLs', 'C:\Python33\lib', 'C:\Python33', 'C:\Python33\lib\site-packages')

We can add and modify this list to add our own path.

Reloading a module

The Python interpreter imports a module only once during a session. This makes things more efficient. Here is an example to show how this works.

Suppose we have the following code in a module named my_module.

 # This module shows the effect of # multiple imports and reload print("This code got executed")

Now we see the effect of multiple imports.

 >>> import my_module This code got executed >>> import my_module >>> import my_module

We can see that our code got executed only once. This goes to say that our module was imported only once.

Now if our module changed during the course of the program, we would have to reload it.One way to do this is to restart the interpreter. But this does not help much.

Python provides a more efficient way of doing this. We can use the reload() function inside the imp module to reload a module. We can do it in the following ways:

 >>> import imp >>> import my_module This code got executed >>> import my_module >>> imp.reload(my_module) This code got executed 

The dir() built-in function

हम dir()एक मॉड्यूल के अंदर परिभाषित नामों का पता लगाने के लिए फ़ंक्शन का उपयोग कर सकते हैं ।

उदाहरण के लिए, हमने add()मॉड्यूल में एक फ़ंक्शन को परिभाषित किया है exampleजो हमारे पास शुरुआत में था।

हम उपयोग कर सकते हैं dirमें exampleनिम्नलिखित तरीके से मॉड्यूल:

 >>> dir(example) ('__builtins__', '__cached__', '__doc__', '__file__', '__initializing__', '__loader__', '__name__', '__package__', 'add')

यहां, हम नामों की क्रमबद्ध सूची (साथ में add) देख सकते हैं । अंडरस्कोर के साथ शुरू होने वाले अन्य सभी नाम डिफ़ॉल्ट पायथन विशेषताओं से जुड़े होते हैं जो मॉड्यूल से जुड़ा होता है (उपयोगकर्ता द्वारा परिभाषित नहीं)।

उदाहरण के लिए, __name__विशेषता में मॉड्यूल का नाम शामिल है।

 >>> import example >>> example.__name__ 'example'

हमारे वर्तमान नामस्थान में परिभाषित सभी नामों को dir()बिना किसी तर्क के फ़ंक्शन का उपयोग करके पाया जा सकता है।

 >>> a = 1 >>> b = "hello" >>> import math >>> dir() ('__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter')

दिलचस्प लेख...