পাইথন অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর একটি শিক্ষানবিশ গাইড

পাইথন অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং এর একটি শিক্ষানবিশ গাইড

রাস্পবেরি পাই থেকে শুরু করে মেশিন লার্নিং পর্যন্ত সব কিছুতেই পাইথন ব্যবহার করা হয়। আপনি যদি কোন বড় প্রকল্পে কাজ করতে চান তবে আপনাকে জানতে হবে কিভাবে পাইথন অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং (OOP) এর সাথে কাজ করে। এই নিবন্ধটি আপনার জানা দরকার এমন প্রাথমিক বিষয়গুলি অন্তর্ভুক্ত করবে।





আপনি যদি আসলে প্রোগ্রামিংয়ে না থাকেন, তাহলে কেন এই সেরা মন্টি পাইথন স্কেচগুলি দেখুন না? তারা ভাষা অনুপ্রাণিত করেছিল, সর্বোপরি!





অপেক্ষা করুন, পাইথন একটি বাস্তব ভাষা নয়?

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





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

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



পাইথন পূর্বশর্ত এবং সেটআপ

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

আপনার যদি ইতিমধ্যে একটি না থাকে তবে আপনি একটি ভার্চুয়াল পরিবেশ তৈরি করতে চান, এবং পাইথনের জন্য PIP ইনস্টল করুন যদি এটি ইনস্টল করা না হয় (যদিও এটি পাইথনের সর্বাধিক আধুনিক ইনস্টলেশনের সাথে আসে)। একবার আপনি এই সেটআপ পেয়ে গেলে, আপনি যেতে ভাল হবে। চল শুরু করি!





পাইথনের বুনিয়াদি: ক্লাস

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

পাইথনে কিভাবে ক্লাস করা যায় তা এখানে:





class Vehicle:
''' This class defines vehicles. '''
pass

সহজ ডান? এখানে কিছু জিনিস চলছে। ক্লাসের শীর্ষে মন্তব্য লক্ষ্য করুন। এটি একটি বিশেষ মন্তব্য যার নাম a ডকস্ট্রিং । এটি আপনার কোড সম্পর্কে কিছুটা ব্যাখ্যা করা উচিত। ট্রিপল কোট ব্যবহার করে ( '' ' ), আপনি পাইথনকে বলছেন যে এটি একটি ডকস্ট্রিং।

দ্য পাস কীওয়ার্ড পাইথনকে কিছুই করতে বলে না। এটি একটি বিশেষ শব্দ, এবং আপনি এটি একটি করণীয় মত মনে করতে পারেন। এটি আপনার কোড চালাবে, কিন্তু এটি আসলে কিছুই করে না।

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

red_car = Vehicle()

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

আপনার পছন্দ মতো অনেক বস্তু তৈরি করা সম্ভব:

red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

আরো কিছু কোড যোগ করা যাক। নামক একটি পদ্ধতি যোগ করুন __এটা__ প্রতি যানবাহন শ্রেণী:

class Vehicle:
''' This class defines vehicles. '''
def __init__(self, color='plain'):
''' Setup some custom car properties '''
print('New car made!')
self.color = color
red_car = Vehicle()
green_car = Vehicle()
blue_car = Vehicle()

এই বিষয়ে বিশেষ মনোযোগ দিন __এটা__ পদ্ধতি এটি অবশ্যই দুটি আন্ডারস্কোর দিয়ে শুরু এবং শেষ হতে হবে। এটি পাইথনে একটি বিশেষ পদ্ধতি। যখন আপনি একটি নতুন বস্তু তৈরি করেন তখন এটি স্বয়ংক্রিয়ভাবে বলা হয়। এই কোডটি চালালে 'নতুন গাড়ি তৈরি!' তিন বার.

অবশেষে, __এটা__ নামক একটি কাস্টম যুক্তি নেয় রঙ । সুনির্দিষ্ট চিহ্ন এবং স্ট্রিং অবিলম্বে পাইথনকে বলুন যদি নির্দিষ্ট না করা হয় তবে 'প্লেইন' তে রঙ সেট করতে। সৃষ্টির সময় আপনার গাড়ির রঙ সেটআপ করতে আপনি আপনার দৃষ্টান্ত পরিবর্তন করতে পারেন:

red_car = Vehicle(color='red')
green_car = Vehicle(color='green')
blue_car = Vehicle(color='blue')

যদি আপনি গাড়ির রঙ মুদ্রণ করেন, আপনি দেখতে পাবেন যে প্রতিটি দৃষ্টান্তের একটি ভিন্ন রঙ আছে, যদিও তিনটিই একই স্পেসিফিকেশনে (ক্লাস) তৈরি করা হয়েছিল। পাইথন আপনাকে প্রায় কোন ভেরিয়েবল বা বস্তু অ্যাক্সেস করতে দেয় --- অন্য অনেক ভাষা আপনাকে এটি করার অনুমতি দেয় না:

print(red_car.color)
print(green_car.color)
print(blue_car.color)

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

আপনার পরিবর্তন করুন __এটা__ একটি পরিবর্তনশীল গাড়ির শব্দ সংরক্ষণ করার পদ্ধতি:

self.noise = 'Vroooom'

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

def drive(self):
print(self.noise)

আপনি এই পদ্ধতিটি বেশ সহজভাবে কল করতে পারেন:

red_car.drive()

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

সাবাশ! এতক্ষণে আপনার মূল বিষয়ে দৃ firm় দৃrip়তা থাকা উচিত। আপনার নিজের ক্লাস তৈরি করতে এবং ব্যবহার করতে সক্ষম হওয়া উচিত, প্রতিটি তাদের নিজস্ব অনন্য ক্ষমতা এবং ফাংশন সহ।

পাইথনে ব্যক্তিগত ভেরিয়েবল সম্পর্কে কি?

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

পাইথনের ব্যক্তিগত সদস্য নেই। পরিবর্তে, পাইথন একটি সম্মান পদ্ধতির উপর নির্ভর করে: 'আমরা সবাই প্রাপ্তবয়স্কদের সম্মতি দিচ্ছি।' পাইথন প্রোগ্রামাররা বুঝতে পারে যে আপনি একটি শ্রেণীর সংবেদনশীল অভ্যন্তরীণদের সাথে টিঙ্কার করতে চাইতে পারেন, এবং এটি ঠিক আছে, তাই কোনও কিছুই সত্যই দুর্গম হওয়া উচিত নয়।

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

_some_secret_variable = 42

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

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

পাইথনে উত্তরাধিকার বোঝা

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

আপনার নিচে এই কোডটি যোগ করুন যানবাহন শ্রেণী:

class ElectricCar(Vehicle):
''' Electric vehicle class. '''
def charge(self):
print('Zzz')
electric_car = ElectricCar()
electric_car.charge()
electric_car.noise = 'Whoosh'
electric_car.drive()

পরে বৈদ্যুতিক গাড়ী সংজ্ঞায়িত করা হয়, যানবাহন ক্লাস দুটি বন্ধনী মধ্যে নির্দিষ্ট করা হয়। এটি পাইথনকে বলে বৈদ্যুতিক গাড়ী এর একটি শিশু যানবাহন । এটি এটি প্রদত্ত সমস্ত ডেটা এবং পদ্ধতিতে অ্যাক্সেস দেয় যানবাহন

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

আপনার পাইথন জ্ঞান আরও বিস্তৃত করুন

এই উদাহরণগুলি দেখিয়েছে পাইথনে OOP কতটা সহজ হতে পারে। আমরা কেবলমাত্র খুব প্রাথমিক বিষয়গুলি আবৃত করেছি, কিন্তু একবার আপনি সেগুলি নামিয়ে নিলে বাকিগুলি সহজ।

অ্যান্ড্রয়েড ট্যাবলেটগুলির জন্য বিনামূল্যে পাঠ্য বার্তা অ্যাপ্লিকেশন

আপনি যদি পাইথন শেখা চালিয়ে যেতে চান, অথবা সম্ভবত এই OOP দক্ষতাগুলোকে অনুশীলনে রাখুন, তাহলে কেন দেখুন না পাইথনে অ্যারে এবং তালিকা , অথবা যোগাযোগ করার জন্য পাইথন এবং জাভাস্ক্রিপ্ট পাওয়ার বিষয়ে কি?

যদি এই সবই আপনাকে আরও বেশি করতে চায় তবে পাইথন শিখতে এই সেরা ওয়েবসাইটগুলি দেখতে ভুলবেন না।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল ডিস্ক স্পেস খালি করতে এই উইন্ডোজ ফাইল এবং ফোল্ডারগুলি মুছুন

আপনার উইন্ডোজ কম্পিউটারে ডিস্ক স্পেস খালি করতে হবে? এখানে উইন্ডোজ ফাইল এবং ফোল্ডার রয়েছে যা ডিস্কের স্থান খালি করতে নিরাপদে মুছে ফেলা যায়।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • প্রোগ্রামিং
  • পাইথন
  • অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং
লেখক সম্পর্কে জো কোবার্ন(136 নিবন্ধ প্রকাশিত)

জো যুক্তরাজ্যের লিংকন বিশ্ববিদ্যালয় থেকে কম্পিউটার বিজ্ঞানে স্নাতক। তিনি একজন পেশাদার সফটওয়্যার ডেভেলপার, এবং যখন তিনি ড্রোন উড়াচ্ছেন না বা সঙ্গীত লিখছেন না, তখন তাকে প্রায়ই ফটো তুলতে বা ভিডিও তৈরি করতে দেখা যায়।

জো কোবার্ন থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন