পাইথনে ক্লাস বনাম মডিউল


19

পাইথনের অনেকগুলি মডিউল রয়েছে (যেমন re) যা নির্দিষ্ট নির্দিষ্ট ক্রিয়া সম্পাদন করে। আপনি এই মডিউলটির ক্রিয়াকলাপগুলিতে কল করতে পারেন এবং ফলাফল পেতে পারেন এবং সামগ্রিকভাবে মডিউলটির পিছনে একটি ধারণা রয়েছে (এই ক্ষেত্রে, নিয়মিত প্রকাশের সাথে ডিল করা)।

ক্লাসগুলি প্রায় একই জিনিসটি করায় বলে মনে হয়, তবে তারা মডিউলগুলির চেয়ে বৈশিষ্ট্যগুলিও কিছুটা বেশি ব্যবহার করবে বলে মনে হয়।

ক্লাসের চেয়ে মডিউলগুলি কীভাবে আলাদা? (আমি জানি আমি একটি মডিউল সাবক্লাস করতে পারি না, তবে এটি কি?) মডিউলটির পরিবর্তে আমার কখন ক্লাস ব্যবহার করা উচিত?


আপনি কি জানেন যে আপনি যখন মডিউল পদ্ধতিগুলি কল করেন, কখনও কখনও মডিউলটি কেবল কোনও শ্রেণীর উদাহরণ দিয়ে চলে যায়? উদাহরণস্বরূপ randomমডিউলটি দেখুন। reতবে এটি সত্য কিনা তা আমি মনে করি না ।
jscs

1
সম্পর্কিত একটি ধারণা - মডিউল বনাম প্যাকেজ?
আরবিটি

উত্তর:


12

পাইথন মডিউলটি পুনরায় ব্যবহারযোগ্য কোড এনক্যাপসুলেট করার জন্য প্যাকেজ ছাড়া কিছুই নয়। মডিউলগুলি সাধারণত, তবে সর্বদা নয়, এর একটি __init__.pyফাইল সহ একটি ফোল্ডারে থাকে। মডিউলগুলি ক্লাসগুলি সহ ফাংশনগুলিও ধারণ করতে পারে। মূল importশব্দটি ব্যবহার করে মডিউলগুলি আমদানি করা হয় ।

পাইথনের একটি ফাইলের মধ্যে সংজ্ঞা স্থাপন এবং সেগুলি স্ক্রিপ্টে বা ইন্টারপ্রিটারের ইন্টারেক্টিভ উদাহরণে ব্যবহার করার একটি উপায় রয়েছে। এই জাতীয় ফাইলকে মডিউল বলা হয়; একটি মডিউল থেকে সংজ্ঞাগুলি অন্য মডিউলগুলিতে বা মূল মডিউলটিতে আমদানি করা যায়।

পাইথন মডিউলগুলি সম্পর্কে এই লিঙ্কগুলিতে আরও জানুন:

https://docs.python.org/2/tutorial/modules.html (পাইথন 2) https://docs.python.org/3/tutorial/modules.html (পাইথন 3)

অন্যদিকে ক্লাসগুলি আপনার মূল অ্যাপ্লিকেশন কোড বা আপনার অ্যাপ্লিকেশন দ্বারা আমদানি করা মডিউলগুলির মধ্যে সংজ্ঞায়িত করা যেতে পারে। ক্লাসগুলি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের কোড এবং এতে বৈশিষ্ট্য এবং পদ্ধতি থাকতে পারে।

পাইথন ক্লাস সম্পর্কে এই লিঙ্কগুলিতে আরও জানুন:

https://docs.python.org/2/tutorial/class.html (পাইথন 2) https://docs.python.org/3/tutorial/classes.html (পাইথন 3)


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

6
আপনি একটি শ্রেণীর একাধিক উদাহরণ তৈরি করতে পারেন, তবে আপনি মডিউলটির উদাহরণ তৈরি করতে পারবেন না। আপনি মডিউলগুলি স্ট্যাটিক ক্লাস বা সিঙ্গলেটের সাথে তুলনা করতে পারেন।
এনেকো অ্যালোনসো

1
মডিউল সবসময় কোনও __init__.pyফাইল সহ কোনও ফোল্ডারে থাকে না।
মাল্টিগডোভার্স

1
@প্রোকিউ পাইথনের মতো ভাষায় যেখানে ক্লাসের পরিবর্তে মডিউলগুলিতে আপনার ফাংশন থাকতে পারে (যেমন, জাভা এর বিপরীতে বলা হয়েছে) কেবলমাত্র মডিউল স্তরে স্থির ফাংশন রাখা ভাল generally ক্লাসগুলি তাদের নিজস্ব রাষ্ট্রের সাথে উদাহরণ বোঝায়।
তুরস্করমা

-2

যদি এটি খাঁটি ফাংশনগুলির একটি গুচ্ছ হয়, যেমন re, আমি এগুলিকে একটি মডিউলে রাখি। আমি যখন ক্লাসটি ব্যবহার করি তখন আমি জানি যে আমি সেই কোডটি দিয়ে রাখতে চাই (উদাহরণস্বরূপ এমন ফাইল যা একবারে পড়তে পারে, তবে যার ডেটা বিভিন্ন ফাংশন দ্বারা ব্যবহৃত হয়)।

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