cookie

Мы используем файлы cookie для улучшения сервиса. Нажав кнопку «Принять все», вы соглашаетесь с использованием cookies.

avatar

Программистика

Лучший канал по python Админ: @JeyRahol

Больше
Рекламные посты
2 860
Подписчики
+20324 часа
+2457 дней
+54630 дней

Загрузка данных...

Прирост подписчиков

Загрузка данных...

Фото недоступноПоказать в Telegram
👀 Книга: Программируем с Minecraft ⏺Телепортация с помощью переменных ⏺Математик а, моментальное строительство и суперпрыжки ⏺Общаемся с помощью строк ⏺«Истина» и «ложь» булевых значений ⏺Конструкция if, душ и потайная дверь И многое другое @programistica // #doc
Показать все...
👍 2 2🔥 1
⚙️ getattr(), setattr(), и hasattr() в python В Python, getattr(), setattr(), и hasattr() — это встроенные функции, которые предоставляют динамический доступ к атрибутам объекта. Эти функции делают код более гибким и позволяют работать с атрибутами объектов, имена которых могут быть неизвестны на момент написания кода. getattr() Функция getattr() возвращает значение атрибута объекта. Если атрибут не существует, можно определить возвращаемое значение по умолчанию. Синтаксис:
getattr(object, 'attribute', default=None)
object — объект, атрибут которого требуется получить. ⏺'attribute' — строка, имя атрибута. ⏺default — значение, которое вернется, если атрибут не найден (необязательный параметр). setattr() Функция setattr() устанавливает значение атрибута объекта. Если атрибут не существует, он будет создан. Синтаксис:
setattr(object, 'attribute', value)
object — объект, атрибут которого требуется установить или создать. ⏺attribute' — строка, имя атрибута. ⏺value — значение, которое нужно установить для атрибута. hasattr() Функция hasattr() проверяет, существует ли атрибут у объекта. Синтаксис:
hasattr(object, 'attribute')
⏺object — объект для проверки наличия атрибута. ⏺'attribute' — строка, имя атрибута для проверки. Эти функции очень полезны при работе с атрибутами объектов, особенно когда вы работаете с динамическими или неизвестными заранее данными. Они обеспечивают дополнительную гибкость и мощь при проектировании архитектуры программ на Python. @programistica // #article
Показать все...
👍 5🔥 5 2
Фото недоступноПоказать в Telegram
💻 Вопрос из собеседования: В чем разница между is и ==? Если кратко: is проверяет идентичность, а == проверяет равенство. Рассмотрим пример. Создайте несколько списков и назначьте им имена. Обратите внимание, что ниже b указывает на тот же объект, что и a:
a = [1,2,3]
b = a
c = [1,2,3]
Проверьте равенство и обратите внимание, что все объекты равны:
print(a == b)
print(a == c)
#=> True
#=> True
Но являются ли все они идентичными? Нет:
print(a is b)
print(a is c)
#=> True
#=> False
Можем проверить это, распечатав их идентификаторы объектов:
print(id(a))
print(id(b))
print(id(c))
#=> 4369567560
#=> 4369567560
#=> 4369567624
Идентификатор c отличается от идентификатора a и b.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥🔥🔥
@programistica // #jobs
Показать все...
👍 11🔥 3 2👏 1
Фото недоступноПоказать в Telegram
Эффективный метод быстрого освоения ChatGPT. Обучение нейронной сети и создание правильных промптов – это длительный процесс, который требует значительного времени. Здесь вы узнаете, как использовать ChatGPT в профессиональных целях, создавать нейросутрудников на заказ и зарабатывать на ИИ. Вы создадите своего нейросотрудника с нуля, без опыта программирования. Бесплатный доступ предоставляется сразу после регистрации. Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8K4fWo
Показать все...
👎 3 1
Фото недоступноПоказать в Telegram
👀 Книга: Python для программирования криптовалют ⏺Конечные поля ⏺Эллиптические кривые ⏺Криптография по эллиптическим кривым ⏺Сериализация ⏺Транзакции ⏺Язык Script И многое другое @programistica // #doc
Показать все...
👍 4 2🔥 1
🖼️ Библиотека Python: Loguru Loguru — это библиотека для логирования в Python, которая предлагает упрощенный способ захвата и управления логами. Она обеспечивает автоматическое определение контекста вызова, поддерживает цветной вывод и позволяет легко настраивать форматирование, фильтрацию и перенаправление логов без необходимости настройки обработчиков. ⚙️ Пример использования
from loguru import logger

# Конфигурация логирования: установка уровня логирования и формата вывода сообщений
logger.add("debug.log", format="{time} {level} {message}", level="DEBUG")

# Примеры логирования на разных уровнях
logger.debug("Это сообщение отладки")
logger.info("Это информационное сообщение")
logger.warning("Это предупреждение")
logger.error("Это сообщение об ошибке")
logger.critical("Это критическое сообщение")

try:
    1 / 0
except ZeroDivisionError:
    # Автоматический захват и логирование исключений
    logger.exception("Произошла ошибка:")

# Логирование с использованием контекста
with logger.contextualize(user_id=123456):
    logger.info("Это сообщение содержит дополнительный контекст")

# Логирование в файл
logger.add("file.log", rotation="100 KB")
logger.info("Это сообщение будет сохранено в файле")
В этом примере демонстрируются основные функции Loguru: ⏺Конфигурация логгера для записи сообщений в файл debug.log с определенным форматом. ⏺Логирование сообщений разного уровня важности. ⏺Автоматический захват исключений и логирование их с помощью logger.exception. ⏺Использование контекста для добавления дополнительной информации к логам. ⏺Ведение логов в файл с автоматической ротацией по достижению размера файла в 100 KB. Loguru делает процесс логирования в Python более удобным и гибким, предоставляя простой интерфейс и мощные возможности для управления логами. ✔️ Установка
pip install loguru
Ссылка на документацию @programistica // #Library
Показать все...
👍 5🔥 2 1🥰 1
Ну, меня немного занесло, и я что-то сильно всë расписал
Показать все...
👍 18😁 1
2. Наследование Наследование позволяет новому классу перенимать атрибуты и методы уже существующего класса. Это облегчает повторное использование кода.
# Определение базового класса Vehicle
class Vehicle:
    # Конструктор класса Vehicle, принимающий имя и скорость транспортного средства
    def __init__(self, name, speed):
        self.name = name  # Инициализация атрибута name
        self.speed = speed  # Инициализация атрибута speed

    # Метод для получения скорости транспортного средства
    def get_speed(self):
        return self.speed  # Возвращает скорость транспортного средства

# Определение класса Car, который наследует класс Vehicle
class Car(Vehicle):
    # Конструктор класса Car, принимающий имя, скорость и пробег автомобиля
    def __init__(self, name, speed, mileage):
        super().__init__(name, speed)  # Вызов конструктора базового класса Vehicle для инициализации name и speed
        self.mileage = mileage  # Инициализация атрибута mileage, уникального для класса Car

    # Метод для получения пробега автомобиля
    def get_mileage(self):
        return self.mileage  # Возвращает пробег автомобиля

# Создание экземпляра класса Car с именем "Toyota", скоростью 150 и пробегом 20000
car = Car("Toyota", 150, 20000)

# Вывод скорости и пробега автомобиля, используя методы get_speed и get_mileage
print(car.get_speed(), car.get_mileage())
Этот код иллюстрирует принцип наследования в ООП, где класс Car расширяет функциональность базового класса Vehicle, добавляя к нему новый атрибут mileage и метод get_mileage() для его получения. Класс Car наследует атрибуты и методы класса Vehicle, что позволяет использовать их в экземплярах класса Car. Таким образом, Car является специализированным типом Vehicle, обладающим всеми его свойствами, а также дополнительным свойством — пробегом. 3. Полиморфизм Полиморфизм — это способность одного и того же кода работать с объектами разных типов.
# Определение класса Dog
class Dog:
    # Метод speak, специфичный для класса Dog
    def speak(self):
        return "Woof!"  # Возвращает звук, который издает собака

# Определение класса Cat
class Cat:
    # Метод speak, специфичный для класса Cat
    def speak(self):
        return "Meow!"  # Возвращает звук, который издает кошка

# Функция, демонстрирующая полиморфизм
def get_pet_sound(pet):
    # Выводит звук, который издает животное
    # Аргумент pet может быть объектом любого класса, имеющего метод speak
    print(pet.speak())

# Создание экземпляра класса Dog и вызов функции get_pet_sound
get_pet_sound(Dog())  # Выводит "Woof!"

# Создание экземпляра класса Cat и вызов функции get_pet_sound
get_pet_sound(Cat())  # Выводит "Meow!"
В этом примере функция get_pet_sound() принимает объект pet в качестве аргумента и вызывает его метод speak(). Благодаря полиморфизму, функция может работать с объектами различных классов, если у этих классов есть метод speak(). Это позволяет писать более универсальный и гибкий код, который может работать с объектами разных типов, не зная их конкретной реализации.
Показать все...
👍 10🔥 2 1
⚙️ Принципы ООП Объектно-ориентированное программирование (ООП) — это парадигма программирования, основанная на концепции "объектов", которые могут содержать данные в виде полей (часто называемых атрибутами или свойствами) и код в виде процедур (часто называемых методами). ООП моделирует программные приложения, используя объекты и классы, что облегчает разработку и поддержку кода. Основные принципы ООП включают инкапсуляцию, наследование, полиморфизм и абстракцию. 1. Инкапсуляция Инкапсуляция — это механизм упаковки данных (атрибутов) и методов, работающих с этими данными, в единый компонент (класс) и ограничение доступа к некоторым компонентам объекта из внешнего мира.
# Определение класса Account
class Account:
    # Метод инициализации класса
    def __init__(self, owner, balance=0):
        self.owner = owner  # Сохранение владельца счета как публичного атрибута
        self.__balance = balance  # Инициализация баланса как приватного атрибута

    # Метод для добавления средств на счет
    def deposit(self, amount):
        self.__balance += amount  # Увеличение баланса на указанную сумму
        print(f"Added {amount} to the balance")  # Вывод сообщения о депозите

    # Метод для снятия средств со счета
    def withdraw(self, amount):
        if amount > self.__balance:  # Проверка достаточности средств на счете
            print("Not enough funds")  # Вывод сообщения об ошибке при недостаточности средств
            return
        self.__balance -= amount  # Уменьшение баланса на указанную сумму
        print(f"Withdrew {amount} from the balance")  # Вывод сообщения о снятии

    # Метод для получения текущего баланса
    def get_balance(self):
        return self.__balance  # Возвращает текущий баланс

# Создание экземпляра класса Account с именем владельца "John" и начальным балансом по умолчанию (0)
acc = Account("John")

# Вызов метода deposit для добавления 100 единиц на счет
acc.deposit(100)
# Вывод текущего баланса с использованием метода get_balance
print(acc.get_balance())

# Вызов метода withdraw для снятия 50 единиц со счета
acc.withdraw(50)
# Вывод текущего баланса после снятия
print(acc.get_balance())
Этот код демонстрирует базовый пример инкапсуляции в ООП на Python. Приватный атрибут __balance используется для хранения баланса счета, доступ к которому осуществляется только через публичные методы класса (deposit, withdraw, get_balance). Это предотвращает прямой доступ к балансу извне класса и позволяет контролировать изменения баланса, обеспечивая целостность данных.
Показать все...
🔥 6👍 2 1
4. Абстракция Абстракция означает выделение ключевых, наиболее значимых характеристик объекта, исключая из рассмотрения незначимые. Абстракция часто реализуется с помощью абстрактных классов и интерфейсов.
# Импорт необходимых модулей для создания абстрактного класса и абстрактных методов
from abc import ABC, abstractmethod

# Определение абстрактного класса Shape
class Shape(ABC):
    # Декоратор @abstractmethod указывает, что метод area должен быть переопределен в подклассах
    @abstractmethod
    def area(self):
        pass  # Тело абстрактного метода оставлено пустым

# Определение класса Rectangle, который наследует абстрактный класс Shape
class Rectangle(Shape):
    # Конструктор класса Rectangle принимает два параметра: ширину и высоту прямоугольника
    def __init__(self, width, height):
        self.width = width  # Инициализация атрибута width
        self.height = height  # Инициализация атрибута height

    # Переопределение абстрактного метода area для вычисления площади прямоугольника
    def area(self):
        return self.width * self.height  # Возвращается произведение ширины на высоту

# Создание экземпляра класса Rectangle с шириной 10 и высотой 20
rect = Rectangle(10, 20)

# Вывод площади прямоугольника, используя переопределенный метод area
print(rect.area())  # Выведет 200
При попытке создать экземпляр абстрактного класса Shape напрямую, Python выдаст ошибку, так как абстрактные классы предназначены для наследования, а не для прямого использования. Класс Rectangle является конкретной реализацией абстрактного класса Shape и обязан предоставить реализацию абстрактного метода area(). Этот механизм обеспечивает выполнение требования о реализации определенного набора методов во всех классах, наследующих абстрактный класс, что упрощает проектирование и повышает предсказуемость кода. @programistica // #article
Показать все...
👍 6🔥 2 1
Выберите другой тариф

Ваш текущий тарифный план позволяет посмотреть аналитику только 5 каналов. Чтобы получить больше, выберите другой план.