উদাহরণ সহ পাইথনে মডিউল আমদানি করুন

পাইথনে মডিউলগুলি কী কী?

একটি মডিউল হল পাইথন কোড সহ একটি ফাইল। কোডটি ভেরিয়েবল, ফাংশন, বা সংজ্ঞায়িত শ্রেণীর আকারে হতে পারে। ফাইলের নাম মডিউল নাম হয়ে যায়।

উদাহরণস্বরূপ, যদি আপনার ফাইলের নাম on2vhf.py হয়, মডিউল নাম হবে গুরু 99 । মডিউল কার্যকারিতা সহ, আপনি একটি ফাইলের ভিতরে সবকিছু লেখার পরিবর্তে আপনার কোডকে বিভিন্ন ফাইলে বিভক্ত করতে পারেন।

এই টিউটোরিয়ালে, আপনি শিখবেন:

পাইথন আমদানি মডিউল কি?

একটি ফাইলকে পাইথনে মডিউল হিসেবে বিবেচনা করা হয়। মডিউল ব্যবহার করতে, আপনাকে এটি ব্যবহার করে আমদানি করতে হবে আমদানি কীওয়ার্ড ফাইলের ভিতরে উপস্থিত ফাংশন বা ভেরিয়েবল মডিউল আমদানি করে অন্য ফাইলে ব্যবহার করা যেতে পারে। এই কার্যকারিতা অন্যান্য ভাষায় পাওয়া যায়, যেমন টাইপস্ক্রিপ্ট, জাভাস্ক্রিপ্ট, জাভা, রুবি ইত্যাদি।

কিভাবে পাইথনে একটি মডিউল তৈরি এবং আমদানি করতে হয়?

এখন আমরা একটি মডিউল তৈরি করে অন্য একটি ফাইলে আমদানি করব।

স্ক্রিনশটে দেখানো মডিউল তৈরি এবং আমদানি করার জন্য এখানে প্রবাহ রয়েছে:

পাইথনে একটি মডিউল তৈরির জন্য প্রদত্ত পদক্ষেপগুলি অনুসরণ করুন।

কোড পরীক্ষা করার জন্য ব্যবহৃত ফোল্ডারের গঠন নিম্নরূপ: | _+_ |

ধাপ 1) একটি ফাইল তৈরি করুন এবং এর নাম দিন test.py

ধাপ ২) Test.py এর ভিতরে display_message () | _+_ | নামে একটি ফাংশন তৈরি করুন

ধাপ 3) এখন আরেকটি ফাইল display.py তৈরি করুন।

ধাপ 4) Display.py এর ভিতরে moduletest.py ফাইল আমদানি করুন, যেমন নিচে দেখানো হয়েছে: | _+_ |

আমদানি করার সময়, আপনাকে test.py উল্লেখ করতে হবে না তবে কেবল ফাইলের নাম।

ধাপ 5)

তারপর আপনি display.py এর ভিতরে test.py থেকে display_message () ফাংশনটি কল করতে পারেন, আপনাকে module_name.function_name ব্যবহার করতে হবে।

উদাহরণস্বরূপ test.display_message ()। | _+_ |

ধাপ 6)

যখন আপনি display.py চালান, আপনি নিম্নলিখিত আউটপুট পাবেন: | _+_ |

পাইথনে একটি ক্লাস আমদানি করা

এর আগে, আমরা একটি ফাংশন সহ একটি সাধারণ মডিউল দেখেছি। এখানে একটি ক্লাস তৈরি করবে এবং অন্য ফাইলের ভিতরে ক্লাসটি রেফার করবে।

কোডটি পরীক্ষা করার জন্য ফোল্ডারের গঠন নিম্নরূপ: | _+_ |

নিম্নলিখিত কোড দিয়ে Car.py নামে একটি ফাইল তৈরি করুন:

ফাইলের নাম: Car.py | _+_ |

Car.py ফাইলে, ব্র্যান্ড_নাম, মডেল এবং manu_year বৈশিষ্ট্য আছে। ক্লাসের ভিতরে সংজ্ঞায়িত ফাংশন হল car_details (), get_Car_brand (), get_Car_model ()।

আসুন এখন ডিসপ্লে.পি নামক অন্য একটি ফাইলে একটি মডিউল হিসাবে Car.py ফাইলটি ব্যবহার করি।

ফাইলের নাম: display.py | _+_ |

আউটপুট: | _+_ |

সুতরাং আমরা কার মডিউল ব্যবহার করে Car.py থেকে সমস্ত ভেরিয়েবল এবং ফাংশন অ্যাক্সেস করতে পারি।

আমদানি মডিউল থেকে ব্যবহার করে

আপনি মডিউলের শুধুমাত্র একটি ছোট অংশ আমদানি করতে পারেন অর্থাৎ, সম্পূর্ণ কোড আমদানি করার পরিবর্তে মডিউল থেকে শুধুমাত্র প্রয়োজনীয় ফাংশন এবং পরিবর্তনশীল নাম।

যখন আপনি কেবলমাত্র নির্দিষ্ট জিনিস আমদানি করতে চান, আপনি যা চান তা আমদানি করতে 'থেকে' কীওয়ার্ড ব্যবহার করতে পারেন।

সুতরাং সিনট্যাক্স হল | _+_ |

কোড পরীক্ষা করার জন্য ব্যবহৃত ফোল্ডারের গঠন নিম্নরূপ: | _+_ |

Test.py তে দেখানো হয়েছে 2 টি ফাংশন রয়েছে:

ফাইলের নাম: test.py | _+_ |

এখন আপনি display_message () ফাংশন চান। আপনি যে ফাংশন বা ভেরিয়েবলটি আমদানি করছেন তা নীচে দেখানো হিসাবে সরাসরি অ্যাক্সেস করা যেতে পারে:

ফাইলের নাম: display.py | _+_ |

আউটপুট:

 modtest/ test.py display.py 

এখন যদি আপনি display_message1 () ফাংশনটি ব্যবহার করেন, তাহলে এটি একটি ত্রুটি ফেলবে যে ফাংশনটি নীচে দেখানো হিসাবে সংজ্ঞায়িত করা হয়নি: | _+_ |

আউটপুট:

 Def display_message(): return 'Welcome to Guru99 Tutorials!' 

মডিউল থেকে সবকিছু আমদানি করা

আমদানি আপনাকে মডিউল নাম অনুসরণ করে আমদানি ব্যবহার করে সম্পূর্ণ মডিউল আমদানি করতে দেয়, যেমন, ফাইলের নাম বা লাইব্রেরি ব্যবহার করতে হবে।

সিনট্যাক্স: | _+_ |

অথবা | _+_ | ব্যবহার করে

কোড পরীক্ষা করার জন্য ব্যবহৃত ফোল্ডারের গঠন নিম্নরূপ: | _+_ |

Test.py | _+_ | এর ভিতরে কোডের বিবরণ নিচে দেওয়া হল

আমদানি মডিউল ব্যবহার করে

মডিউলের ভিতরে ভেরিয়েবল এবং ফাংশনগুলি উল্লেখ করতে শুধু মডিউল নাম আমদানি করুন, এটি মডিউল নামের সাথে উপসর্গ করতে হবে।

উদাহরণ

ফাইলের নাম: display.py | _+_ |

মডিউল নাম পরীক্ষাটি মডিউল পরীক্ষার অভ্যন্তরে ফাংশন এবং ভেরিয়েবলগুলি বোঝাতে ব্যবহৃত হয়।

আউটপুট: | _+_ |

আমদানি ব্যবহার করে *

আসুন একটি উদাহরণ ব্যবহার করে দেখি আমদানি * । ব্যবহার আমদানি * , ফাংশন এবং ভেরিয়েবল সরাসরি অ্যাক্সেসযোগ্য, যেমন নীচের উদাহরণে দেখানো হয়েছে: | _+_ |

আউটপুট: | _+_ |

Dir () ফাংশন

Dir () পাইথনে একটি অন্তর্নির্মিত ফাংশন। Dir () প্রদত্ত বস্তুর অন্তর্নির্মিত বৈশিষ্ট্য সহ সমস্ত বৈশিষ্ট্য এবং পদ্ধতিগুলি ফেরত দেয়।

সুতরাং যখন মডিউলে dir () ব্যবহার করা হয়, তখন এটি আপনাকে ভেরিয়েবল, ফাংশন দেবে যা মডিউলের ভিতরে রয়েছে।

এখানে একটি মডিউলে dir () এর একটি কাজের উদাহরণ। আমাদের Car.py নামে একটি ক্লাস আছে, আসুন আমরা গাড়ি আমদানি করি এবং আউটপুট দেখতে dir () এ বরাদ্দ করি।

কোডটি পরীক্ষা করার জন্য ফোল্ডারের গঠন নিম্নরূপ হবে: | _+_ |

ফাইলের নাম: Car.py | _+_ |

ফাইলের নাম: test.py | _+_ |

আউটপুট আমাদের ক্লাসের নাম এবং Car.py তে সংজ্ঞায়িত সমস্ত ফাংশন দেয়।

আপনি পাইথনে উপলব্ধ একটি অন্তর্নির্মিত মডিউলে dir () ব্যবহার করার চেষ্টা করতে পারেন। আসুন আমরা একই চেষ্টা করি json মডিউল যেমন নীচের উদাহরণে দেখানো হয়েছে। এটি উপলব্ধ সমস্ত বৈশিষ্ট্য এবং পদ্ধতি প্রদর্শন করবে json মডিউল | _+_ |

আউটপুট: | _+_ |

প্যাকেজ

একটি প্যাকেজ হল একটি ডিরেক্টরি যার ভিতরে সংজ্ঞায়িত সমস্ত মডিউল রয়েছে। একটি পাইথন ইন্টারপ্রেটারকে এটি একটি প্যাকেজ হিসাবে বিবেচনা করতে, আপনার ডিরেক্টরিতে init.pyfile থাকা উচিত। Init.py একটি প্যাকেজ হিসাবে ডিরেক্টরি তৈরি করে। এখানে আমরা যে প্যাকেজের উপর কাজ করতে যাচ্ছি তার লেআউট।

প্যাকেজের নাম হল আমার প্যাকেজ । প্যাকেজের সাথে কাজ শুরু করতে, প্যাকেজ/নামে একটি ডিরেক্টরি তৈরি করুন। ডিরেক্টরিটির ভিতরে, __init__.py নামে একটি খালি ফাইল তৈরি করুন। আরো 3 টি ফাইল module1.py, module2.py, এবং module3.py তৈরি করুন এবং স্ক্রিনশটে দেখানো ফাংশন সংজ্ঞায়িত করুন। এখানে module1.py, module2.py এবং module3.py এর বিবরণ দেওয়া হল

module1.py

 import test 

module2.py

 Import test print(test.display_message()) 

module3.py

 Welcome to Guru99 Tutorials! 

দ্য প্যাকেজ ব্যবহারের জন্য প্রস্তুত। এখন নীচে দেখানো হিসাবে আপনার যে কোনও ফাইলের ভিতরে প্যাকেজটি কল করুন: test.py:

এখানে, mypackage.module1 আমদানি করা হয়েছে এবং একটি উপনাম নাম দেওয়া হয়েছে mod1। একইভাবে, আপনি আমার প্যাকেজ থেকে অন্যান্য মডিউল module2.py এবং module3.py ব্যবহার করতে পারেন। | _+_ |

আউটপুট: | _+_ |

আমরা কেবল প্যাকেজটি একটি সাধারণ মডিউল দিয়ে দেখিয়েছি যার ভিতরে ফাংশন রয়েছে। আপনার প্রকল্প অনুসারে, আপনি সাব-প্যাকেজ সহ প্যাকেজ করতে পারেন। সাব-ফোল্ডার/ সংজ্ঞায়িত ক্লাস সহ মডিউল থাকা।

পাইথন মডিউল অনুসন্ধান পথ

কার্যকর করার সময়, যখন পাইথন জুড়ে আসে আমদানি মডিউল নাম , দোভাষী মডিউলটি খুঁজে বের করার চেষ্টা করে। এটি বিল্ড-ইন মডিউল তালিকায় মডিউল অনুসন্ধান করে। পরবর্তীতে, sys.path এর ভিতরে নির্দেশিত ডিরেক্টরিগুলি।

সংক্ষেপে, দোভাষী মডিউলটি সনাক্ত করতে নিম্নলিখিত অনুসন্ধান করে:

  1. আপনার বর্তমান ডিরেক্টরিতে।
  2. বিল্ড-ইন মডিউল তালিকায়
  3. Sys.path ডিরেক্টরিগুলির ভিতরে

Sys মডিউল আমদানি করে sys.path এর বিবরণ পেতে পারেন এবং sys.path প্রিন্ট করতে পারেন। এটি আপনাকে নীচে প্রদর্শিত ডিরেক্টরিগুলির তালিকা দেবে: | _+_ |

আউটপুট: | _+_ |

আপনি পথ পরিবর্তন করতে পারেন এবং আপনার প্রয়োজনীয়তা অনুসারে ডিরেক্টরিগুলি রাখতে পারেন।

আমদানিতে মডিউল উপনাম ব্যবহার করা

আপনি মডিউল নামটি একটি ছোট নাম দিয়ে এটিকে একটি উপনাম নাম দিয়ে রূপান্তর করতে পারেন। উপনাম কীওয়ার্ড ব্যবহার করে করা যেতে পারে।

সিনট্যাক্স: | _+_ |

কোডটি পরীক্ষা করার জন্য ফোল্ডারের গঠন নিম্নরূপ হবে: | _+_ |

Test.py | _+_ | এর ভিতরের কোড নিচে দেওয়া হল

এখন display.py | _+_ | এ test.py এর জন্য একটি উপনাম ব্যবহার করবে

উপনাম যা পরীক্ষা মডিউলের জন্য ব্যবহৃত হয় তা হল টি। সুতরাং test.py থেকে ফাংশন এবং ভেরিয়েবল উপনাম t ব্যবহার করে উল্লেখ করা যেতে পারে।

আউটপুট: | _+_ |

পাইথনে পরম এবং আপেক্ষিক আমদানি

আপনি এখন জানেন কিভাবে একটি ফাইলকে অন্য ফাইলের ভিতরে মডিউল হিসেবে আমদানি করতে হয়। আসুন এখন দেখি কিভাবে ফোল্ডারে উপলব্ধ ফাইলগুলি পরিচালনা করা যায়। ফোল্ডারগুলির ফাইলগুলি পরম বা আপেক্ষিক আমদানি ব্যবহার করে আমদানি করা যেতে পারে।

আপনার প্রোজেক্ট ফোল্ডার স্ট্রাকচারটি বিবেচনা করুন, যেমনটি নীচে দেখানো হয়েছে:

মূল ফোল্ডারটি আমার প্রকল্প/। এটিতে দুটি সাবফোল্ডার প্যাকেজ 1 এবং প্যাকেজ 2 রয়েছে।

ফোল্ডার প্যাকেজ 1 এর দুটি মডিউল রয়েছে, module1.py এবং module2.py।

Package2 ফোল্ডারে একটি ক্লাস myclass.py, module3.py সহ একটি সাব-প্যাকেজ subpkg এবং শেষ module4.py রয়েছে।

  • Module1.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc1।
  • Module2.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc2।
  • Module3.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc3।
  • Module4.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc4।

পরম আমদানি ব্যবহার করা

পরম আমদানির জন্য, আপনাকে প্রোজেক্ট রুট ফোল্ডার থেকে আপনার মডিউলের পুরো পথ যোগ করতে হবে।

আসুন এখন দেখি প্রতিটি মডিউলে উপস্থিত ফাংশনগুলি উল্লেখ করার জন্য কীভাবে পরম আমদানির ব্যবহার করা যায়।

ফাংশন myfunc1 এর সাথে কাজ করতে, আপনাকে নিম্নরূপ আমদানি করতে হবে: | _+_ |

Myfunc3 ফাংশনের সাথে কাজ করার জন্য আপনাকে নিম্নরূপ আমদানি করতে হবে: | _+_ |

পরম আমদানি ব্যবহারের সুবিধা এবং অসুবিধা

এখানে পরম আমদানি ব্যবহারের সুবিধা রয়েছে:

  • কোড চেকের জন্য মডিউলগুলি খুঁজে বের করা সহজ হয়ে যায়।
  • ব্যবহার করা সহজ এবং খুব সহজবোধ্য।
  • যদি প্রকল্পটি ভিন্ন পথে সরানো হয়, তবুও আমদানি একই থাকবে।

পরম আমদানি ব্যবহারের অসুবিধা

এখানে, পরম আমদানি ব্যবহারের অসুবিধাগুলি হল:

অসুবিধা:

  • ক্ষেত্রে আমদানি পথ অনেক লম্বা হতে পারে, মডিউল নেস্টেড, এবং যদি মডিউলগুলির নাম দীর্ঘ হয়।

আপেক্ষিক আমদানি ব্যবহার করে

নীচে উল্লিখিত একই ফোল্ডারের কাঠামো বিবেচনা করে, আমরা দেখব কিভাবে আপেক্ষিক আমদানি ব্যবহার করে একই আমদানি করতে হয়।

আপেক্ষিক আমদানিতে, আমদানি করা মডিউলটি বর্তমান অবস্থানের সাথে সম্পর্কিত যা সেই অবস্থান যেখানে আমদানি বিবৃতি উপস্থিত।

বাক্য গঠন:

আপেক্ষিক আমদানিতে, আপনাকে আমদানি করার সময় মডিউল নামের আগে একটি পিরিয়ড (।) যোগ করতে হবে থেকে

মডিউলটি বর্তমান অবস্থান থেকে এক স্তরের উপরে থাকলে মডিউল নামের আগে এটি 2 পিরিয়ড (..) হবে।

উপরে উল্লিখিত ফোল্ডার স্ট্রাকচার ফিগারের উল্লেখ করে, আমাদের তাদের ফাংশনের সাথে নিম্নলিখিত মডিউল রয়েছে, যা আমাদের উল্লেখ করতে হবে।

  • Module1.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc1।
  • Module2.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc2।
  • Module3.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc3।
  • Module4.py তে, একটি ফাংশন আছে যাকে বলা হয় myfunc4।

ফাংশন myfunc1 এর সাথে কাজ করার জন্য আপনাকে নিম্নরূপ আমদানি করতে হবে: | _+_ |

Myfunc3 ফাংশনের সাথে কাজ করতে, আপনাকে নিম্নরূপ আমদানি করতে হবে: | _+_ |

আপেক্ষিক আমদানির সুবিধা

সুবিধাদি:

  • আপেক্ষিক আমদানির সাথে কাজ করা সহজ।
  • বর্তমান অবস্থান থেকে, আমদানি সম্পূর্ণ আমদানির তুলনায় সংক্ষিপ্ত করা যেতে পারে।

আপেক্ষিক আমদানির অসুবিধা

অসুবিধা:

  • আপেক্ষিক আমদানি ব্যবহার করে, কোডটি কোথায় থাকে তা খুঁজে বের করা কঠিন

সারসংক্ষেপ:

  • পাইথনে আমদানি আপনাকে কোড উল্লেখ করতে সাহায্য করে, যেমন। এটি পাইপ (পাইথন প্যাকেজ ম্যানেজার) ব্যবহার করে ইনস্টল করা পাইথন লাইব্রেরি/প্যাকেজগুলি আমদানি করতেও ব্যবহৃত হয় এবং আপনার কোড ব্যবহার করতে হবে।
  • আমদানি কার্যকারিতা অন্যান্য ভাষায় যেমন টাইপস্ক্রিপ্ট, জাভাস্ক্রিপ্ট, জাভা, রুবি ইত্যাদি পাওয়া যায়।
  • একটি মডিউল হল পাইথন হল ফাইলের ভিতরে লেখা কোড, উদাহরণস্বরূপ (test.py)। আপনার ফাইলের ভিতরে, আপনি আপনার ভেরিয়েবল, ফাংশন, অথবা আপনার ক্লাস সংজ্ঞায়িত করতে পারেন। সম্পূর্ণ ফাইলটি একটি মডিউল হয়ে যায় এবং কোডটি উল্লেখ করার জন্য অন্য ফাইলের ভিতরে আমদানি করা যায়।
  • মডিউল কার্যকারিতা সহ, আপনি একটি ফাইলের ভিতরে সবকিছু লেখার পরিবর্তে আপনার কোডকে বিভিন্ন ফাইলে বিভক্ত করতে পারেন। পরে, আমদানি ব্যবহার করে, আপনি আপনার প্রয়োজনীয় ফাইলের ভিতরে কোডটি উল্লেখ করতে পারেন।
  • পাইথন এর অন্তর্নির্মিত মডিউল রয়েছে, এবং একটি পাইথন প্যাকেজ ম্যানেজার (পিপ) ​​ব্যবহার করে বাহ্যিক লাইব্রেরি/প্যাকেজগুলি ইনস্টল করা হয়েছে, যেমন, পান্ডা, নুমপি ইত্যাদি মডিউল হিসাবে উল্লেখ করা হয়।
  • আপনি মডিউল থেকে শুধুমাত্র একটি ছোট অংশ আমদানি করতে পারেন, যেমন, সম্পূর্ণ কোড আমদানি করার পরিবর্তে মডিউল থেকে শুধুমাত্র প্রয়োজনীয় ফাংশন এবং পরিবর্তনশীল নাম।
  • আপনি মডিউল নামটি একটি ছোট নাম দিয়ে এটিকে একটি উপনাম নাম দিয়ে রূপান্তর করতে পারেন। উপনাম কীওয়ার্ড ব্যবহার করে করা যেতে পারে।
  • একটি প্যাকেজ হল একটি ডিরেক্টরি যার ভিতরে সংজ্ঞায়িত সমস্ত মডিউল রয়েছে। একটি পাইথন ইন্টারপ্রেটারকে এটি একটি প্যাকেজ হিসাবে বিবেচনা করতে, আপনার ডিরেক্টরিতে __init.pyfile থাকা উচিত। Init.py একটি প্যাকেজ হিসাবে ডিরেক্টরি তৈরি করে। এখানে আমরা যে প্যাকেজের উপর কাজ করতে যাচ্ছি তার লেআউট।
  • কার্যকর করার সময়, যখন পাইথন জুড়ে আসে আমদানি মডিউল নাম , দোভাষী মডিউলটি খুঁজে বের করার চেষ্টা করে। এটি বিল্ড-ইন মডিউল তালিকায় মডিউল অনুসন্ধান করে। পরবর্তীতে, sys.path এর ভিতরে নির্দেশিত ডিরেক্টরিগুলি।
  • পরম আমদানির জন্য, আপনাকে প্রোজেক্ট রুট ফোল্ডার থেকে আপনার মডিউলের পুরো পথ যোগ করতে হবে।
  • আপেক্ষিক আমদানিতে, আমদানি করা মডিউলটি বর্তমান অবস্থানের সাথে সম্পর্কিত যা সেই অবস্থান যেখানে আমদানি বিবৃতি উপস্থিত।