Python quides | Просто о программировании
2 subscribers
4 photos
1 file
5 links
Download Telegram
🚀 Присоединяйтесь к нашему путешествию в мир Python!🐍

Вы когда-нибудь видели питона в очках, погруженного в чтение книг? 📚👓 Вот он, наш умный питон, символизирующий мудрость и знания, которыми мы готовы поделиться с вами!

Мы запускаем серию эксклюзивных туториалов, которые превратят вас из начинающего в мастера Python, и мы хотим, чтобы вы были частью этого! Подписывайтесь на нас прямо сейчас и получите доступ к:
Бесплатным учебным материалам
Живым вебинарам от экспертов
Интерактивным сессиям Q&A

Не упустите шанс стать экспертом в одном из самых востребованных языков программирования в мире. Подписывайтесь и начните свой кодинг-путь сегодня! #PythonMasters #LearnCoding #PythonProgramming

👉 Подписаться [Ссылка на канал]
🔥 Это база 1100 вопросов с собеседований на Python разработчика. Фишка в том, что просчитана вероятность с которой вопрос буден задан и есть примеры ответов. Теперь можно легко получить оффер, подготовившись к самым популярным вопросам 😏

#PythonMasters #LearnCoding #PythonProgramming

👉 Подписаться [Ссылка на канал]
Docs repo с крутыми конспектами для подготовки к собесам и развития, разбираем!

#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
👉 Подписаться [Ссылка на канал]
Привет! Сегодня мы поговорим о том, как использовать #Python для автоматизации задач, связанных с веб-браузером. Это может быть полезно для #тестирования веб-приложений, #сбора_данных с веб-сайтов или просто для автоматизации повседневных задач в интернете.

Для работы с браузером через Python мы будем использовать библиотеку #Selenium. Selenium - это мощный инструмент, который позволяет управлять браузером программно, имитируя действия реального пользователя. Он поддерживает различные браузеры, включая #Chrome, #Firefox, #Safari и другие.

Чтобы начать работу с Selenium, сначала необходимо установить библиотеку:

pip install selenium


Затем необходимо скачать драйвер для конкретного браузера, который вы хотите использовать. Драйверы для популярных браузеров можно найти на официальном сайте Selenium: https://www.selenium.dev/downloads/

После установки Selenium и скачивания драйвера, можно приступать к написанию кода. Вот простой пример того, как открыть браузер и перейти на определенный веб-сайт:

from selenium import webdriver

# Указываем путь к драйверу браузера
driver = webdriver.Chrome(executable_path='путь_к_драйверу/chromedriver')

# Переходим на веб-сайт
driver.get('https://www.google.com')


В этом примере мы импортируем класс
webdriver
из библиотеки Selenium, создаем экземпляр класса
Chrome
, указывая путь к драйверу браузера, и используем метод
get()
для перехода на заданный URL.

Selenium позволяет не только открывать веб-сайты, но и #взаимодействовать_с_элементами страницы различными способами. Например, можно найти элементы на странице по их идентификаторам или именам, вводить текст в поля ввода, нажимать кнопки и многое другое.

Кроме того, Selenium может быть полезен для #автоматизации_авторизации на веб-сайтах. Вы можете написать скрипт, который будет вводить имя пользователя и пароль, нажимать кнопку входа и проверять, успешно ли прошла авторизация.

Не забудьте установить хештеги, чтобы ваш пост был более заметным и доступным для поиска в Telegram!

#Python #Selenium #Автоматизация #ВебРазработка #Тестирование #СборДанных #Chrome #Firefox #Safari
Приветствую! Сегодня поговорим о такой штуке как декораторы.
Что это за зверь и с чем их едят?
Если коротко, декоратор - это функция, которая позволяет менять уже имеющуюся функцию, так мы можем менять поведение функции, добавлять в нее что-то новое.

Рассмотрим пример.
def text_upper(func):
def text_up():
text = str(func())
text_2 = text.upper()
print(text, text_2)
return text_up

Мы написали функцию, которая позволит нам брать текст, а на выходе получать его же, но в двух вариантах: оригинальном и "с зажатым шифтом"
Для того, чтобы не переписывать этот кусок кода каждый раз, когда мы хотим его применить, в python придумали синтаксический сахар, декоратор мы можем вызвать через символ "@" и название декоратора.
Пример:
@text_upper
def func():
return 'Hello!'
func()

Здесь мы к функции func() применили созданный выше декоратор, на выходе получим такой результат:
 Hello! HELLO!

Вот и все, теперь мы знаем, как работают декораторы, зачем они нам нужны и можем применять в своих проектах!
Удачи в обучении и работе!

#Python #PythonLearning #декораторы #питон #python_guides
Классы и объекты... Что? Мы в школе?
Ну почти. Для более ясного понимания разберем на примере той самой школы.
Класс - это общие параметры, которые есть у всех учеников, допустим, у нас это будет имя, возраст.
А вот сами ученики будут зваться объектами. Объекты наследуют параметры класса, но могут иметь отличные значения, мало того, каждый объект класса может иметь еще и свой дополнительный параметр, которого нет ни у кого другого (индивидуальность, ага).
Чтобы создать класс, нужно объявить его с ключевым словом class и дать ему название (обязательно с большой буквы).
Рассмотрим на примере:
class Users():
name = None
age = 0

Здесь мы создали класс Users и добавили всем его объектам параметры name и age с дефолтными значениями
user_1=Users()
user_1.name = 'Alex'

Теперь в нашем классе есть объект user_1, мы указали для него параметр name. Обратите внимание, параметр age мы не задавали, поэтому для user_1 он остается стандартным, в нашем случае равен нулю.

Давайте добавим оригинальности нашему первому объекту и укажем, что у него красные волосы.
user_1.h_color = 'red'

Теперь, если мы захотим увидеть все характеристики user_1, нам будет доступен его цвет волос, но при этом такого параметра не будет у остальных объектов класса Users().

Что делать, если мы хотим добавить эту характеристику всем?
Существует функция setattr(), в скобках нам нужно указать через запятую класс, название параметра (в "") и стандартное значение:
setattr(Users, 'h_color', 'blue')
user_2=Users()

Здесь мы добавили еще и новый объект (user_2), обратите внимание, у объекта user_1 мы указали значения возраста, пола и цвета, но у user_2 они примут стандартное значение, общее для класса Users.

Таким же способом мы можем удалить параметры из класса (функция delattr()), а также получить значение определенного параметра через функцию getattr().
Перед удалением параметра мы можем узнать, есть ли такой параметр вообще (при попытке удалить отсутствующий параметр программа выдаст ошибку), для этого используется функция hasattr(), в скобках указывается имя класса и параметр, ответ булевый (True/False)

#python #pythonlearning #class #python_guides