পাইথনের একটি মডিউল এবং একটি লাইব্রেরির মধ্যে পার্থক্য কী?


87

জাভাতে আমার ব্যাকগ্রাউন্ড আছে এবং আমি পাইথনে নতুন। আমি এগিয়ে যাওয়ার আগে পাইথন পরিভাষাটি সঠিকভাবে বুঝতে পেরেছি তা নিশ্চিত করতে চাই।

মডিউল সম্পর্কে আমার বোঝা হল: একটি স্ক্রিপ্ট যা পাঠকে আরও সহজ করার জন্য অনেক স্ক্রিপ্ট দ্বারা আমদানি করা যায়। ঠিক যেমন জাভাতে আপনার একটি ক্লাস রয়েছে এবং সেই শ্রেণিটি অন্যান্য অনেক শ্রেণি দ্বারা আমদানি করা যায়।

আমার একটি লাইব্রেরি সম্পর্কে বুঝতে হবে: একটি লাইব্রেরিতে অনেকগুলি মডিউল থাকে যা এর ব্যবহার দ্বারা পৃথক হয়।

আমার প্রশ্ন হয়: প্যাকেজ, যেখানে আপনি একটি প্যাকেজ যেমন বলা আছে মত লাইব্রেরি হয় food, তারপর:

  • chocolate.py
  • মিষ্টি.পি
  • বিস্কুটস.পি

অন্তর্ভুক্ত করা হয় foodপ্যাকেজ?

বা লাইব্রেরিগুলি প্যাকেজগুলি ব্যবহার করে, সুতরাং আমাদের যদি অন্য প্যাকেজ থাকে drink:

  • দুধ.পি
  • জুস.পি

প্যাকেজ অন্তর্ভুক্ত। libraryদুই প্যাকেজ রয়েছে?

এছাড়াও, একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) সাধারণত লাইব্রেরির একটি সেট থাকে এটি হায়ারার্কির শীর্ষে:

  1. এপিআই
  2. গ্রন্থাগার
  3. প্যাকেজ
  4. মডিউল
  5. লিপি

সুতরাং একটি এপিআই 2-5 থেকে সমস্ত গঠিত হবে?


4
পাইথন "প্যাকেজ" শব্দটি ব্যবহার করে এবং খুব বেশি "গ্রন্থাগার" নয় (স্ট্যান্ডার্ড লাইব্রেরি বাদে)।
জন জুইনক

উত্তর:


79

থেকে মডিউল - পাইথন টিউটোরিয়াল

  • মডিউল :

    মডিউল হল পাইথন সংজ্ঞা এবং বিবৃতি সম্বলিত একটি ফাইল। ফাইলের নামটি প্রত্যয় .pyযুক্ত হওয়া মডিউলটির নাম ।

  • প্যাকেজ :

    প্যাকেজগুলি "ডটেড মডিউল নামগুলি" ব্যবহার করে পাইথনের মডিউল নামস্থান গঠনের একটি উপায় way

আপনি যদি importবিবৃতিটির জন্য ডকুমেন্টেশন পড়েন তবে আরও বিশদ দেয়, উদাহরণস্বরূপ:

পাইথনের কেবলমাত্র এক ধরণের মডিউল অবজেক্ট রয়েছে এবং মডিউলটি পাইথন, সি বা অন্য কোনও ক্ষেত্রে প্রয়োগ করা হচ্ছে তা নির্বিশেষে সমস্ত মডিউল এই ধরণের। মডিউলগুলি সংগঠিত করতে এবং নামকরণের স্তরক্রম সরবরাহ করতে পাইথনের প্যাকেজগুলির ধারণা রয়েছে।

আপনি কোনও ফাইল সিস্টেমের ডিরেক্টরি হিসাবে প্যাকেজগুলি এবং ডিরেক্টরিগুলির মধ্যে ফাইল হিসাবে মডিউলগুলি ভাবতে পারেন, তবে প্যাকেজগুলি এবং মডিউলগুলি ফাইল সিস্টেম থেকে উদ্ভূত হওয়ার দরকার নেই বলে এই সাদৃশ্যটিকে খুব আক্ষরিক অর্থে গ্রহণ করবেন না। এই ডকুমেন্টেশনের উদ্দেশ্যে, আমরা ডিরেক্টরি এবং ফাইলগুলির এই সুবিধাজনক উপমা ব্যবহার করব। ফাইল সিস্টেম ডিরেক্টরিগুলির মতো, প্যাকেজগুলি শ্রেণিবদ্ধভাবে সংগঠিত হয় এবং প্যাকেজগুলিতে নিজেরাই সাবপ্যাকেজগুলি পাশাপাশি নিয়মিত মডিউল ধারণ করতে পারে।

এটি মনে রাখা গুরুত্বপূর্ণ যে সমস্ত প্যাকেজ মডিউল, তবে সমস্ত মডিউল প্যাকেজ নয়। অথবা অন্যভাবে বলতে গেলে প্যাকেজগুলি কেবলমাত্র একটি বিশেষ ধরণের মডিউল। বিশেষত, যে কোনও মডিউলটিতে একটি __path__বৈশিষ্ট্য রয়েছে তাকে প্যাকেজ হিসাবে বিবেচনা করা হয়।

সুতরাং এই শব্দটি moduleএকটি নির্দিষ্ট সত্তাকে বোঝায়: এটি এমন একটি বর্গ যার উদাহরণস্বরূপ moduleপাইথন প্রোগ্রামগুলিতে আপনি যে জিনিসগুলি ব্যবহার করেন are উপমা অনুসারে এটি ব্যবহৃত হয় এমন ফাইল সিস্টেমে যে ফাইলগুলি থেকে এই দৃষ্টান্তগুলি "তৈরি করা হয়" তার উল্লেখ করতে।

শব্দটি স্ক্রিপ্টটি এমন একটি মডিউলকে বোঝাতে ব্যবহৃত হয় যার লক্ষ্য নির্বাহ করা to এটি "প্রোগ্রাম" বা "অ্যাপ্লিকেশন" এর একই অর্থ রয়েছে তবে এটি সাধারণত হয় সহজ এবং ছোট প্রোগ্রামগুলি বর্ণিত করতে ব্যবহৃত হয় (অর্থাত্ বেশ কয়েকটি শত লাইন সহ একটি ফাইল)। স্ক্রিপ্ট লিখতে কয়েক মিনিট বা কয়েক ঘন্টা সময় লাগে।

শব্দটি গ্রন্থাগারটি কেবল একটি গুচ্ছ কোডের জন্য একটি জেনেরিক শব্দ যা অনেকগুলি অ্যাপ্লিকেশন দ্বারা ব্যবহারযোগ্য হওয়ার লক্ষ্যে তৈরি করা হয়েছিল। এটি কিছু জেনেরিক কার্যকারিতা সরবরাহ করে যা নির্দিষ্ট অ্যাপ্লিকেশনগুলি ব্যবহার করতে পারে।

যখন কোনও মডিউল / প্যাকেজ / অন্য কোনও কিছু "প্রকাশিত" হয় তখন লোকেরা প্রায়শই এটি একটি গ্রন্থাগার হিসাবে উল্লেখ করে। প্রায়শই লাইব্রেরিতে একটি প্যাকেজ বা একাধিক সম্পর্কিত প্যাকেজ থাকে তবে এটি এমনকি একটি একক মডিউলও হতে পারে।

গ্রন্থাগারগুলি সাধারণত কোনও নির্দিষ্ট কার্যকারিতা সরবরাহ করে না, অর্থাৎ আপনি "লাইব্রেরি চালাতে পারবেন না"।

প্রসঙ্গের উপর নির্ভর করে এপিআই-এর বিভিন্ন অর্থ হতে পারে। উদাহরণ স্বরূপ:

  • এটি ডিবি এপিআই বা বাফার প্রোটোকলের মতো একটি প্রোটোকল সংজ্ঞায়িত করতে পারে ।
  • এটি কোনও অ্যাপ্লিকেশনের সাথে কীভাবে ইন্টারঅ্যাক্ট করবেন তা নির্ধারণ করতে পারে (যেমন Python/C API:)
  • যখন কোনও লাইব্রেরি / প্যাকেজ সম্পর্কিত হয় তখন কেবল এটির কার্যকারিতার জন্য লাইব্রেরি দ্বারা সরবরাহ করা ইন্টারফেস (ফাংশন / শ্রেণি / ধ্রুবক ইত্যাদি)

কোন ক্ষেত্রে একটি API হয় না পাইথন কোড। এটি এমন বর্ণনা যা কম-বেশি আনুষ্ঠানিক হতে পারে।


40

শুধু প্যাকেজ এবং মডিউল পাইথন করার জন্য একটি ভালভাবে সংজ্ঞায়িত অর্থ নির্দিষ্ট আছে।

  1. একটি এপিআই প্রতি সেটের কোডের সংগ্রহ নয় - এটি আরও অনেকগুলি "প্রোটোকল" স্পেসিফিকেশনের মতো যা বিভিন্ন অংশ (সাধারণত গ্রন্থাগারগুলি) একে অপরের সাথে যোগাযোগ করে। পাইথনে কয়েকটি উল্লেখযোগ্য "স্ট্যান্ডার্ড" এপিআই রয়েছে। যেমন ডিবি এপিআই

  2. আমার মতে, একটি লাইব্রেরি এমন কিছু যা অ্যাপ্লিকেশন নয় - পাইথনে, একটি পাঠাগার একটি মডিউল হয় - সাধারণত সাবমডিউল সহ । লাইব্রেরির স্কোপটি বেশ পরিবর্তনশীল - উদাহরণস্বরূপ পাইথায় অজস্র স্ট্যান্ডার্ড লাইব্রেরি বিস্তৃত (বেশ কয়েকটি সাবমোডিয়ুল সহ) পাইপিআইতে প্রচুর একক উদ্দেশ্য গ্রন্থাগার রয়েছে, উদাহরণস্বরূপ পাই এর ব্যাকপোর্ট collections.OrderedDict<2.7

  3. একটি প্যাকেজ হল একটি সাধারণ নেমস্পেসের অধীনে পাইথন মডিউলগুলির সংগ্রহ। অনুশীলনে একটি বিশেষ __init__.pyমডিউল (ফাইল) সহ ডিরেক্টরিতে একাধিক পাইথন মডিউল স্থাপন করে তৈরি করা হয় ।

  4. একটি মডিউল পাইথন কোড যে হতে বোঝানো হয় একটি একক ফাইল আমদানি করা । এটি একটি সরলকরণের কিছুটা কারণ অনুশীলনে বেশ কয়েকটি মডিউল সনাক্ত করে যখন তারা স্ক্রিপ্ট হিসাবে চালিত হয় এবং সেই ক্ষেত্রে বিশেষ কিছু করে।

  5. একটি স্ক্রিপ্ট পাইথন কোড যে হতে বোঝানো হয় একটি একক ফাইল মৃত্যুদন্ড কার্যকর 'প্রধান' প্রোগ্রাম হিসাবে।

  6. আপনার যদি এমন এক সেট কোড থাকে যা একাধিক ফাইল ছড়িয়ে দেয় তবে সম্ভবত স্ক্রিপ্টের পরিবর্তে আপনার কাছে একটি অ্যাপ্লিকেশন রয়েছে


1

গ্রন্থাগার: এটি মডিউলগুলির সংগ্রহ।

(লাইব্রেরিতে হয় মডিউলগুলি অন্তর্নির্মিত থাকে (সি তে লেখা থাকে) + পাইথনে মডিউল লেখা থাকে)।

মডিউল: স্ট্যান্ডার্ডাইজড পার্টস বা স্বতন্ত্র ইউনিটের প্রতিটি সেট যা আরও জটিল কাঠামো তৈরি করতে ব্যবহার করা যেতে পারে।

(অনানুষ্ঠানিক ভাষায় কথা বলছেন, একটি মডিউল এড়ানোর শুকিয়ে, কোড লাইনের যা একটি নির্দিষ্ট উদ্দেশ্যের জন্য ব্যবহার করা হয় এবং অন্যান্য প্রোগ্রামের ব্যবহার করা যেতে পারে যেমন হয় সেট করা হয় ডি on't আর epeat ওয়াই একটি দল এবং উপর নিকটতর নিবদ্ধ যেমন আমরাই) প্রধান প্রয়োজন উৎস

এআইপিআই অন্য অ্যাপ্লিকেশনগুলির জন্য সরাসরি অ্যাক্সেস ছাড়াই আপনার লাইব্রেরির সাথে ইন্টারঅ্যাক্ট করার ইন্টারফেস।

প্যাকেজটি মূলত ফাইল সহ একটি ডিরেক্টরি।

স্ক্রিপ্ট মানে একটি একক ফাইলের মধ্যে কমান্ডের সিরিজ।


0

আমি প্রাথমিকের শুরুর শর্তগুলি ব্যবহার না করেই এর জবাব দেওয়ার চেষ্টা করব এবং সর্বাধিক "অফিসিয়াল" এবং / অথবা সর্বাধিক বোঝা বা অভিন্ন ব্যবহারের পাশাপাশি কেন বা কীভাবে তারা আলাদাভাবে ব্যবহার করেছে তা ব্যাখ্যা করব।

এটি বিভ্রান্তিকর হতে পারে, এবং আমি নিজেকে কঠিন করে ভেবে বিভ্রান্ত হয়ে পড়েছি, সুতরাং এ সম্পর্কে খুব বেশি ভাবেন না। যাইহোক প্রসঙ্গ বিষয়গুলি, ব্যাপকভাবে।

লাইব্রেরি - প্রায়শই সাধারণ লাইব্রেরি বা একই ধরণের ফর্ম্যাট এবং ব্যবহারের সাথে তৈরি অন্য সংগ্রহের উল্লেখ করবে। জেনারেল লাইব্রেরি হ'ল 'স্ট্যান্ডার্ড', জনপ্রিয় এবং বহুল ব্যবহৃত মডিউলগুলির যোগফল, ডাইনিটিকে এখনই বা শর্ট কাটগুলির জন্য জিনিসগুলি সম্ভব বা দ্রুততর করার জন্য একক ফাইল সরঞ্জাম হিসাবে বিবেচনা করা যেতে পারে। পাইথন ইনস্টল করার সময় সাধারণ লাইব্রেরি হ'ল একটি বিকল্প। কারণ এর এই নাম "পাইথন জেনারেল লাইব্রেরি" রয়েছে এটি প্রায়শই অনুরূপ কাঠামো এবং ধারণাগুলির সাথে ব্যবহৃত হয়। জাদুকরী কেবল সাধারণত একটি তালিকায় একত্রে মডিউলগুলি, এমনকি প্যাকেজগুলি একত্রে গোষ্ঠীভুক্ত করা হয়। তালিকাটি তাদের ডাউনলোড করার জন্য সাধারণত হয়। সাধারণত এটি অনুরূপ আগ্রহের সাথে সম্পর্কিত ফাইলগুলি interests এটি বর্ণনা করার সবচেয়ে সহজ উপায়।

মডিউল - একটি মডিউল একটি ফাইল বোঝায়। ফাইলটির স্ক্রিপ্ট 'এতে রয়েছে' এবং ফাইলটির নাম মডিউলটির নাম, পাইথন ফাইলগুলি .py দিয়ে শেষ হয়। সমস্ত ফাইল রয়েছে এমন কোড যা একসাথে দৌড়ে কিছু ঘটায় ফাংশন, স্ট্রিং ect ব্যবহার করে happen আপনি সম্ভবত মুখ্য মডিউলগুলি প্রায়শই দেখতে পান কারণ তারা বিশেষ মডিউল যা অন্যান্য ফাইল / মডিউলগুলি থেকে তথ্য পেতে পারে। এটি বিভ্রান্তিকর কারণ ফাইল এবং মডিউলটির নাম সমান এবং কেবল .py ছাড়ুন। সত্যিই এটি কেবল কোড যা আপনি কিছু সহজ বা সম্ভব করার জন্য কারও দ্বারা লিখিত শর্টকাট হিসাবে ব্যবহার করতে পারেন।

প্যাকেজ - এটি একটি টার্মিস যা সাধারণত কখনও কখনও ব্যবহৃত হয়, যদিও প্রসঙ্গে একটি পার্থক্য তৈরি হয়। আমার অভিজ্ঞতা থেকে সর্বাধিক সাধারণ ব্যবহার হ'ল একাধিক মডিউল (বা ফাইল) যা একসাথে গ্রুপযুক্ত ed কেন তাদের একত্রে গ্রুপ করা হয়েছে কয়েকটি কারণ হতে পারে, এটি তখন প্রসঙ্গের বিষয় matters এই শব্দটি আমি শব্দটি লক্ষ্য করেছি প্যাকেজ (গুলি)ব্যবহৃত। এগুলি ডাউনলোড, তৈরি এবং / অথবা সঞ্চিত মডিউলগুলির একটি গ্রুপ। যা সমস্ত সত্য হতে পারে, বা কেবল 1, তবে সত্যই এটি কেবল একটি ফাইল যা অন্যান্য ফাইলগুলিকে রেফার করে, যা সঠিক কাঠামো বা বিন্যাসে থাকা দরকার, এবং পুরো যোগফলটি প্যাকেজ নিজেই, ইনস্টলড বা অন্তর্ভুক্ত করা হতে পারে অজগর সাধারণ গ্রন্থাগার। একটি প্যাকেজ মডিউল (.py ফাইল) থাকতে পারে কারণ তারা একে অপরের উপর নির্ভর করে এবং কখনও কখনও সঠিকভাবে বা কিছু নাও কাজ করতে পারে। প্যাকেজের প্রতিটি অংশের (মডিউল / ফাইল) সর্বদা একটি সাধারণ লক্ষ্য থাকে এবং সমস্ত অংশের মোট যোগফলটি প্যাকেজটি হয়।

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

সর্বাধিক বিভ্রান্তি একটি সাধারণ ফাইল ফাইলের নাম বা একটি ফাইলের উপসর্গ থেকে আসে, মডিউলের নাম হিসাবে আবার প্যাকেজের নাম হিসাবে ব্যবহৃত হয়।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.