🚀 Присоединяйтесь к нашему путешествию в мир Python!🐍
Вы когда-нибудь видели питона в очках, погруженного в чтение книг? 📚👓 Вот он, наш умный питон, символизирующий мудрость и знания, которыми мы готовы поделиться с вами!
Мы запускаем серию эксклюзивных туториалов, которые превратят вас из начинающего в мастера Python, и мы хотим, чтобы вы были частью этого! Подписывайтесь на нас прямо сейчас и получите доступ к:
✅ Бесплатным учебным материалам
✅ Живым вебинарам от экспертов
✅ Интерактивным сессиям Q&A
Не упустите шанс стать экспертом в одном из самых востребованных языков программирования в мире. Подписывайтесь и начните свой кодинг-путь сегодня! #PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
Вы когда-нибудь видели питона в очках, погруженного в чтение книг? 📚👓 Вот он, наш умный питон, символизирующий мудрость и знания, которыми мы готовы поделиться с вами!
Мы запускаем серию эксклюзивных туториалов, которые превратят вас из начинающего в мастера Python, и мы хотим, чтобы вы были частью этого! Подписывайтесь на нас прямо сейчас и получите доступ к:
✅ Бесплатным учебным материалам
✅ Живым вебинарам от экспертов
✅ Интерактивным сессиям Q&A
Не упустите шанс стать экспертом в одном из самых востребованных языков программирования в мире. Подписывайтесь и начните свой кодинг-путь сегодня! #PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
🔥 Это база 1100 вопросов с собеседований на Python разработчика. Фишка в том, что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏
#PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
#PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
Docs repo с крутыми конспектами для подготовки к собесам и развития, разбираем!
#PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
#PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]
👍22
Как выражена инкапсуляция в python ?
Спросят с вероятностью 3%
Инкапсуляция выражена через механизмы, которые позволяют скрывать внутренние детали реализации класса и предоставлять доступ к данным и методам через определённый интерфейс. Достигается с помощью соглашений об именовании и специальных методов. Основные аспекты инкапсуляции включают:
Соглашения об именовании
1️⃣Приватные атрибуты и методы:
✅В Python соглашение об именовании позволяет сделать атрибуты и методы приватными, что предотвращает их случайное использование вне класса.
✅Атрибуты и методы, начинающиеся с одного подчёркивания (_), считаются защищёнными и не должны использоваться вне класса или подклассов.
✅Атрибуты и методы, начинающиеся с двойного подчёркивания (__), подвергаются манглингу имён (name mangling), что делает их труднодоступными из вне класса.class MyClass:
def __init__(self, value):
self._protected_value = value # Защищённый атрибут
self.__private_value = value # Приватный атрибут
def _protected_method(self):
print("This is a protected method.")
def __private_method(self):
print("This is a private method.")
Примеры использования
1️⃣Защищённые атрибуты и методы:
✅Они не предназначены для использования вне класса, но могут быть использованы в подклассах.
✅Их использование вне класса является плохой практикой, но технически возможно.class SubClass(MyClass):
def access_protected(self):
print(self._protected_value)
self._protected_method()
instance = SubClass(10)
instance.access_protected()
# Выведет:
# 10
# This is a protected method.
2️⃣Приватные атрибуты и методы:
✅Они подвергаются манглингу имён, что делает их труднодоступными из вне класса.
✅Внешний доступ возможен, но с использованием специального синтаксиса, что считается плохой практикой.class AnotherClass:
def __init__(self, value):
self.__private_value = value
def __private_method(self):
print("This is a private method.")
def access_private(self):
print(self.__private_value)
self.__private_method()
instance = AnotherClass(20)
instance.access_private()
# Выведет:
# 20
# This is a private method.
# Попытка доступа к приватному атрибуту извне
# print(instance.__private_value) # AttributeError
# Доступ с использованием манглинга имён (не рекомендуется)
print(instance._AnotherClass__private_value) # Выведет: 20
Свойства (Properties)
Предоставляют интерфейс для управления доступом к атрибутам и позволяют инкапсулировать логику доступа и изменения данных.class MyClassWithProperty:
def __init__(self, value):
self._value = value
@property
def value(self):
return self._value
@value.setter
def value(self, new_value):
if new_value > 0:
self._value = new_value
else:
raise ValueError("Value must be positive")
instance = MyClassWithProperty(10)
print(instance.value) # Выведет: 10
instance.value = 20
print(instance.value) # Выведет: 20
# instance.value = -10 # ValueError: Value must be positive
Инкапсуляция достигается с помощью соглашений об именовании (одинарное подчёркивание для защищённых и двойное подчёркивание для приватных атрибутов и методов) и использования свойств для управления доступом к атрибутам. Это позволяет скрывать внутренние детали реализации и предоставлять контролируемый интерфейс для взаимодействия с объектами.
#PythonMasters #LearnCoding #PythonProgramming
👉 Подписаться [Ссылка на канал]