Python somo la 29: Encaosulation kwneye python
Katika somo hili utajifunza maana ya encapsulation na sheria za uandishi wake
Encapsulation kwenye pyton
1. Encapsulation ni nini?
Encapsulation ni dhana ya kuficha data ya ndani ya object ili isiweze kufikiwa moja kwa moja kutoka nje ya class.
-
Hii inamaanisha kuwa property au method iliyo ndani ya class haiwezi kufikiwa au kubadilishwa moja kwa moja kutoka nje.
-
Kwa kutumia encapsulation, tunaweza kudhibiti jinsi data inavyopatikana au kubadilishwa kupitia mbinu (methods) maalum.
-
Lengo kuu ni:
-
Kulinda data dhidi ya mabadiliko yasiyotarajiwa.
-
Kuweka mipaka ya ufikiaji ili kuboresha usalama wa programu.
2. Kwanini Tunahitaji Encapsulation?
-
Ulinzi wa Data: Inawezesha kudhibiti jinsi property na method za object zinavyofikiwa au kubadilishwa.
-
Kupunguza Makosa: Inazuia mabadiliko yasiyoidhinishwa kwenye data.
-
Rahisi Kudhibiti: Programu inakuwa rahisi kuelewa, kudumisha, na kufanya marekebisho bila kuvunja sehemu nyingine.
-
Usalama: Huzuia ufikiaji wa moja kwa moja wa data muhimu kutoka nje ya class.
3. Viwango vya Ufikiaji (Access Levels)
Ili kufanikisha encapsulation, tunatumia viwango vya ufikiaji vya property na method kwenye class. Python hutoa viwango vitatu vya msingi:
a) Public
-
Property na method zinazoonekana na kufikiwa moja kwa moja kutoka nje ya class.
-
Kwa kawaida attribute zinakuwa ni public by default.
Mfano:
class Example:
def __init__(self):
self.data = "Public Data" # Public
obj = Example()
print(obj.data) # Inaweza kufikiwa moja kwa moja
b) Protected
-
Property na method zinazofikiwa ndani ya class husika na class zilizorithi (subclasses). Kuhusu class zinazorithi tutajifunza mbeleni.
-
Hutangulizwa na alama ya underscore moja _.
class Example:
def __init__(self):
self.data = "Protected Data" # Private attribute
# Kufikia private attribute moja kwa moja nje ya class
obj = Example()
print(obj.data)
Katika mfano huo tumeweza kuprint attribute data bila ya tatizo nje ya class. Huu ni mfano wa public. Lakini sasa hebu tufanye attribute data kuwa protected.
Mfano
class Example:
def __init__(self):
self._data = "Protected Data" # Private attribute
# Kufikia private attribute moja kwa moja nje ya class
obj = Example()
print(obj._data)
Pia kuna namna ambavyo protected inaweza kutumika lakini sio njia inayoshauriwa kutumia yaani haipendezi.
Mfano:class Example:
def __init__(self):
self._data = "Protected Data" # Protected
obj = Example()
print(obj._data) # Inaweza kufikiwa lakini haipendekezwi
Mfano wa kurithi protected
class Parent:
def __init__(self):
self._data = "Protected Data" # Protected attribute
def display_data(self):
print(f"Data from Parent: {self._data}")
class Child(Parent):
def modify_data(self, new_data):
self._data = new_data # Accessing and modifying protected attribute
print(f"Data modified in Child: {self._data}")
# Kutengeneza object ya Child class
child_obj = Child()
# Kufikia na kuonyesha protected attribute kupitia parent method
child_obj.display_data() # Output: Data from Parent: Protected Data
# Kufikia na kubadilisha protected attribute kupitia child method
child_obj.modify_data("New Protected Data") # Output: Data modified in Child: New Protected Data
# Kuhakikisha mabadiliko yanadumu
child_obj.display_data() # Output: Data from Parent: New Protected Data
&nb...
Umeionaje Makala hii.. ?
Share On:
👉1 Bongolite - Game zone - Play free game 👉2 Simulizi za Hadithi Audio 👉3 kitabu cha Simulizi 👉4 web hosting 👉5 Kitabu cha Afya 👉6 Sira ya Mtume Muhammad (s.a.w)
Post zinazofanana:
Pthon somo la 41: Template Inheritance katika Django
Somo hili linazungumzia hatua ya kuunda navigation menu na kutumia template inheritance kwa njia ya kitaalamu katika Django.
Soma Zaidi...PYTHON - somo la 1: Jinsi ya ku install python
Katika somo hili utajifunza kuhusu maana ya python na kazi zake. pia jinsi ya kuandaa kifaa chako kwa ajili ya somo.
Soma Zaidi...Python somo la 39: Jinsi ya Kuongeza Kurasa Nyingine Katika Django View
Katika somo hili utakwenda kujifunza zaidi kuhusu Jinsi ya Kuongeza Kurasa Nyingine Katika Django View
Soma Zaidi...PYTHON - somo la 9: indexing katika strinfg
Katika somo hili tutakwenda kujifunza kuhusu string indexing. Kama tulivyojifunza kuhusu namba katika somo lililopita, basi hapa tutakwenda kucheza na string.
Soma Zaidi...Python somo la 24: Nini maana ya Object Oriented Programming
Hapa tunakwenda kujifunza kuhusu OOP ambapo ni miongoni mwa mitindo ya uandishi wa code
Soma Zaidi...PYTHON - somo la 7: Jinsi ya kubadili aina ya data
Katika soo hili utakwenda kujifunza jinsi ya kubaduli aina moja ya data kwena aina nyingine. Kwa mfano unaweza kubadili namba kuwa string ama kubadili string kuwa nanda ama kubadili float kuwa int.
Soma Zaidi...