cookie

ما از کوکی‌ها برای بهبود تجربه مرور شما استفاده می‌کنیم. با کلیک کردن بر روی «پذیرش همه»، شما با استفاده از کوکی‌ها موافقت می‌کنید.

avatar

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

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

نمایش بیشتر
پست‌های تبلیغاتی
2 860
مشترکین
+20324 ساعت
+2457 روز
+54630 روز

در حال بارگیری داده...

معدل نمو المشتركين

در حال بارگیری داده...

Photo unavailableShow in 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
Photo unavailableShow in 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
Photo unavailableShow in Telegram
Эффективный метод быстрого освоения ChatGPT. Обучение нейронной сети и создание правильных промптов – это длительный процесс, который требует значительного времени. Здесь вы узнаете, как использовать ChatGPT в профессиональных целях, создавать нейросутрудников на заказ и зарабатывать на ИИ. Вы создадите своего нейросотрудника с нуля, без опыта программирования. Бесплатный доступ предоставляется сразу после регистрации. Реклама. ООО "ТЕРРА ЭЙАЙ". ИНН 9728019395. erid: LjN8K4fWo
نمایش همه...
👎 3 1
Photo unavailableShow in 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 کانال تجزیه و تحلیل را مجاز می کند. برای بیشتر، لطفا یک طرح دیگر انتخاب کنید.