Intern
Какво е геттер и сеттер?
sobes.tech AI
Отговор от AI
Гетър (getter) и сетър (setter) са специални методи, използвани в обектно-ориентираното програмиране за достъп и промяна на стойностите на частните (или защитени) полета на класа.
Геттер:
- Осигурява контролиран достъп за четене на стойността на полето.
- Обикновено има име, започващо с
get(например,getName()). - Може да изпълнява допълнителни действия преди връщането на стойността (например форматиране или валидиране).
Сетър:
- Осигурява контролиран достъп за записване на нова стойност в полето.
- Обикновено има име, започващо с
set(например,setName()). - Може да извършва валидиране на входните данни преди да присвои стойността на полето.
- Позволява реализиране на логика при промяна на стойността на полето (например, уведомяване на други части от програмата).
Пример на Python:
class Person:
def __init__(self, name):
self._name = name # Частно поле
# Геттер
def get_name(self):
return self._name
# Сетър
def set_name(self, new_name):
if isinstance(new_name, str) and len(new_name) > 0:
self._name = new_name
else:
print("Невалидно име")
# Използване
person = Person("Alice")
print(person.get_name()) # Използване на гетъра
person.set_name("Bob") # Използване на сетъра
print(person.get_name())
person.set_name("") # Пример за използване на сетър с валидиране
Използването на гетъри и сетъри насърчава инкапсулацията, позволявайки управлението на достъпа и модификацията на данните вътре в обекта, осигурявайки по-добра структура и поддръжка на кода.