অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং-এ ডেটা এনক্যাপসুলেশনের জন্য গেটার (প্রাইভেট অ্যট্রিবিউট পাওয়ার) এবং সেটার (প্রাইভেট অ্যট্রিবিউট সেট করার) মেথড ব্যবহার করা হয়। পাইথনে এটি প্রোপার্টি ডেকোরেটর দিয়ে সহজে করা যায়।
প্রাইভেট অ্যট্রিবিউট এক্সেস (গেটার/সেটার ছাড়া)
class year_graduated:
def __init__(self, year=0):
self._year = year
grad_obj = year_graduated()
print(grad_obj)
print(grad_obj.year)
গেটার ও সেটার মেথড ব্যবহার
class year_graduated:
def __init__(self, year=0):
self._year = year
def get_year(self):
return self._year
def set_year(self, a):
self._year = a
grad_obj = year_graduated()
print(grad_obj.get_year()) # 0
grad_obj.set_year(2019)
print(grad_obj._year) # 2019
ডাবল আন্ডারস্কোর (__) দিয়ে প্রাইভেট করা
class year_graduated:
def __init__(self, year=32):
self.__year = year
def get_year(self):
return self.__year
def set_year(self, a):
self.__year = a
grad_obj = year_graduated()
print(grad_obj._year) # 32 (নেম मैंگلিং এর কারণে _year আছে)
print(grad_obj.get_year()) # AttributeError: __year এক্সেসibile নয়
@property ডেকোরেটর ব্যবহার (আধুনিক পদ্ধতি)
class year_graduated:
def __init__(self, year=32):
self._year = year
@property
def Aboutyear(self):
return self.__year
@Aboutyear.setter
def Aboutyear(self, a):
self.__year = a
grad_obj = year_graduated()
print(grad_obj._year) # 32
grad_obj.year = 2018
print(grad_obj.year) # 2018