Python OOP
  • Python OOP
  • OOP class তৈরী
  • ক্লাসে প্রপার্টি যোগ করা
  • ক্লাসে মেথড যোগ করা
  • অবজেক্ট তৈরী করা
  • ক্লাস ভ্যারিয়েবল
  • ইন্সটেন্স ভ্যারিয়েবল
  • Self কীওয়ার্ড
  • অবজেক্ট এর প্রপার্টি ভ্যালু পরিবর্তন
  • অবজেক্ট এর প্রপার্টি ডিলেট করা
  • অবজেক্টকে ডিলেট করা
  • অবজেক্ট
    • প্রতিটি অবজেক্ট আলাদা
    • instance method
  • ম্যাজিক মেথড
  • Construction
  • এনক্যাপসুলেশনঃEncapsulation
  • Method
    • type()
    • Static Method
    • Specials Method
      • __str__ ()
      • __add__()
      • __eq()__
  • Inheritance
    • child class তৈরী
    • চাইল্ড অবজেক্ট প্যারেন্ট অবজেক্ট এর উত্তরাধিকার
    • super()কীওয়ার্ড
      • চাইল্ড ক্লাস হতে প্যারেন্ট ক্লাসের প্রপার্টি এক্সেস করা
      • চাইল্ড ক্লাসের নিজস্ব প্রোপার্টি এবং মেথড
    • isinstance()
      • চাইল্ড ক্লাসে প্যারেন্ট ক্লাসের মেথড কল করা
    • issubclass()
    • Method Overriding
    • super().__init__()
  • অ্যাবস্ট্রাকশন (Abstruction)
Powered by GitBook
On this page
  1. অবজেক্ট

প্রতিটি অবজেক্ট আলাদা

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

class School:
    name=''
    def __init__(self,name):
        self.name=name
#Create First Object              
du= School('Dhaka University')
print(du)
#Create Second Object
bu= School('Bogra University')
print(bu)

আমরা যদি আমাদের অবজেক্ট দুইটি কে জানার জন্য প্রিন্ট মেথড ব্যবহার করি তাহলে দুইটি অবজেক্ট এর জন্য দুইটি মেমোরি লোকেশন দেখতে পাবো। তার মানে আমাদের ক্লাস একটি হলেও অবজেক্ট দুইটি সম্পূর্ণ আলাদা।

Output 👍

<__main__.School object at 0x000002096E7D04D0>
<__main__.School object at 0x000002096E7D0510>

এই কোডটি রান করি

class School:
    name=''
    start = 1947
    def __init__(self,name):
        self.name=name
#Create First Object              
du= School('Dhaka University')
du.start = 1950
print(du.name,du.start)

#Create Second Object
bu= School('Bogra University')
print(bu.name,bu.start)

Output:

Dhaka University 1950
Bogra University 1947

কোডটি লক্ষ্য করলে দেখতে পাবো আমরা যখন ক্লাস ডিফাইন করি তখন ক্লাস এর একটি প্রপার্টি start নাম ডিফাইন করি। এরপর একটি দুইটি অবজেক্ট তৈরী করি। প্রথম অবজেক্ট এর start প্রপার্টির ভ্যালু পরিবর্তন করে দুইটি অবজেক্ট প্রিন্ট করলে প্রথম অবজেক্ট এর start প্রপার্টি ভ্যালু পরিবর্তন হয় কিন্তু অরিজিনাল ক্লাস এর start প্রপার্টির ভ্যালু পরিবর্তন হয় না

যার কারণ দ্বিতীয় অবজেক্ট এর start প্রপার্টির ভ্যালু পরিবর্তন না হওয়ার কারণে সে অরিজিনাল ক্লাসের start প্রপার্টির ভ্যালু ধারণ করেছে। যেহেতু অবজেক্ট শুধু নিজের প্রপার্টি ভ্যালু পরিবর্তন করতে পারে ক্লাসের ভ্যালু পরিবর্তন করতে পারে না তাই দ্বিতীয় অবজেক্ট এই start প্রপার্টির ভ্যালু অরিজিনাল ক্লাসের ভ্যালু এসেছে।

Previousঅবজেক্টNextinstance method

Last updated 2 years ago