মডিউল বনাম প্যাকেজ?


140

যখনই আমি from 'x' import 'y'ভাবছিলাম যে কোনটিকে 'মডিউল' হিসাবে বিবেচনা করা হয় এবং কোনটি 'প্যাকেজ', এবং কেন এটি অন্যভাবে হয় না?


1
সংক্রান্ত কেন এটা অন্য উপায় কাছাকাছি আছে, দেখতে stackoverflow.com/questions/3600352/...

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

উত্তর:


192

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

যখন অন্য পাইথন উত্স ফাইল থেকে আমদানি করা হয়, তখন ফাইলটির নামটি একটি স্থান হিসাবে বিবেচিত হয়।

পাইথন প্যাকেজটি হল পাইথন মডিউলগুলির একটি ডিরেক্টরি।

উদাহরণস্বরূপ, নিম্নলিখিত ডিরেক্টরি ট্রি এর মধ্যে কল্পনা করুন /usr/lib/python/site-packages:

mypackage/__init__.py <-- this is what tells Python to treat this directory as a package
mypackage/mymodule.py

তাহলে আপনি কি করবেন:

import mypackage.mymodule

অথবা

from mypackage.mymodule import myclass

আহা, সুতরাং যখন আপনি বলবেন যে ফাইলটির নামটি একটি স্থান হিসাবে বিবেচিত হয়, আপনি কি এমন কিছু চান? প্রথম ক্ষেত্রে "mymodule.var1", বা দ্বিতীয় ক্ষেত্রে "myclass.var1"?
অন্ধকার টেম্পলার 4

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

নেমস্পেস প্যাকেজগুলি সম্পর্কে কিছু যুক্ত করা কার্যকর হতে পারে, যার জন্য কোডটি অগত্যা সমস্ত ডিরেক্টরি ডিরেক্টরিতে উপস্থিত হওয়া প্রয়োজন।
হোল্ডেনওয়েব

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

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