Python | Вопросы собесов
Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads
Ko'proq ko'rsatish📈 Telegram kanali Python | Вопросы собесов analitikasi
Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 12 637 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 918-o'rinni va Rossiya mintaqasida 51 142-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 12 637 obunachiga ega bo‘ldi.
14 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -107 ga, so‘nggi 24 soatda esa 0 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.11% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 4.23% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 772 marta ko‘riladi; birinchi sutkada odatda 534 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 3 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent ставь, модуль, строка, docker, alice kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Сайт: https://easyoffer.ru/
Все каналы: t.me/+xGeAw6ckJ4liYzQy
Контакт для рекламы: @sendme_ads”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 15 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
type() можно узнать тип любого объекта.
x = 10
print(type(x)) # <class 'int'>
🟠Проверка наличия атрибутов и методов
Функции hasattr(), getattr() и setattr() позволяют проверять и манипулировать атрибутами объектов.
class MyClass:
def __init__(self, value):
self.value = value
obj = MyClass(5)
# Проверка наличия атрибута
print(hasattr(obj, 'value')) # True
# Получение значения атрибута
print(getattr(obj, 'value')) # 5
# Установка значения атрибута
setattr(obj, 'value', 10)
print(getattr(obj, 'value')) # 10
🟠Исследование структуры класса
Модуль inspect предоставляет функции для получения информации о классах, методах и функциях.
import inspect
class MyClass:
def method(self):
pass
# Получение всех методов класса
methods = inspect.getmembers(MyClass, predicate=inspect.isfunction)
print(methods) # [('method', <function MyClass.method at 0x...>)]
🟠Список атрибутов и методов объекта
Встроенная функция dir() возвращает список всех атрибутов и методов объекта.
class MyClass:
def method(self):
pass
obj = MyClass()
print(dir(obj))
# ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
# '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__',
# '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'method']
🟠Работа с модулем `inspect`
Модуль inspect предоставляет функции для получения информации о живых объектах, включая функции, методы, классы и модули.
import inspect
def my_function():
pass
# Получение информации о функции
print(inspect.getmembers(my_function))
🚩Плюсы и минусы
➕Гибкость
Позволяет писать более общие и гибкие функции, которые могут работать с различными типами данных.
➕Отладка и тестирование
Облегчает отладку и тестирование кода, предоставляя средства для анализа объектов и их состояния.
➖Сложность
Может сделать код более сложным для понимания и сопровождения.
➖Производительность
Интроспекция может повлиять на производительность, особенно при частом использовании в критически важных участках кода.
Ставь 👍 и забирай 📚 Базу знанийid = models.AutoField(primary_key=True)
🟠Поле CharField
Поле для хранения строк с фиксированной максимальной длиной.
name = models.CharField(max_length=100)
🟠Поле TextField
Поле для хранения длинных текстов.
description = models.TextField()
🟠Поле IntegerField
Поле для хранения целых чисел.
age = models.IntegerField()
🟠Поле FloatField
Поле для хранения чисел с плавающей запятой.
price = models.FloatField()
🟠Поле BooleanField
Поле для хранения булевых значений (True/False).
is_active = models.BooleanField(default=True)
🟠Поле DateTimeField
Поле для хранения даты и времени.
created_at = models.DateTimeField(auto_now_add=True)
🟠Поле ForeignKey
Поле для создания связи "многие к одному" с другой моделью.
author = models.ForeignKey('Author', on_delete=models.CASCADE)
🟠Поле ManyToManyField
Поле для создания связи "многие ко многим" с другой моделью.
categories = models.ManyToManyField('Category')
🟠Поле OneToOneField
Поле для создания связи "один к одному" с другой моделью.
profile = models.OneToOneField('Profile', on_delete=models.CASCADE)
Ставь 👍 и забирай 📚 Базу знанийManager), чтобы добавить дополнительные методы для выполнения более сложных запросов к базе данных. Менеджеры используются для работы с наборами запросов (QuerySets) и предоставляют интерфейс для выполнения операций с базой данных.
🚩Зачем использовать кастомный менеджер модели?
🟠Повторное использование кода
Вынесение часто используемых запросов в методы менеджера позволяет избежать дублирования кода.
🟠Организация логики запросов
Логика сложных запросов инкапсулируется в методы менеджера, делая код моделей и представлений более чистым и удобочитаемым.
🟠Расширение функциональности
Добавление новых методов к менеджеру позволяет выполнять специфичные для приложения операции с данными.
🚩Пример создания кастомного менеджера модели
1⃣Создание кастомного менеджера
from django.db import models
from django.utils import timezone
class BookManager(models.Manager):
def by_author(self, author_name):
return self.filter(author__name=author_name)
def published_recently(self):
one_month_ago = timezone.now() - timezone.timedelta(days=30)
return self.filter(publication_date__gte=one_month_ago)
2⃣Использование кастомного менеджера в модели
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
publication_date = models.DateTimeField()
# Подключение кастомного менеджера
objects = BookManager()
3⃣Пример использования кастомного менеджера
# Получение книг по автору
books_by_author = Book.objects.by_author('John Doe')
for book in books_by_author:
print(book.title)
# Получение книг, опубликованных за последний месяц
recent_books = Book.objects.published_recently()
for book in recent_books:
print(book.title)
Ставь 👍 и забирай 📚 Базу знанийclass User:
def __init__(self, name, email):
self.name = name
self.email = email
def save(self):
# Сохранение данных пользователя в базу данных
print(f"Saving user {self.name} to the database.")
def send_welcome_email(self):
# Отправка приветственного сообщения на электронную почту
print(f"Sending welcome email to {self.email}.")
🚩Пример соблюдения
Для соблюдения принципа SRP разделим класс User на два отдельных класса: один для управления данными пользователя, другой для отправки сообщений электронной почты.
class User:
def __init__(self, name, email):
self.name = name
self.email = email
class UserRepository:
def save(self, user):
# Сохранение данных пользователя в базу данных
print(f"Saving user {user.name} to the database.")
class EmailService:
def send_welcome_email(self, user):
# Отправка приветственного сообщения на электронную почту
print(f"Sending welcome email to {user.email}.")
# Использование классов
user = User("Alice", "alice@example.com")
user_repository = UserRepository()
email_service = EmailService()
user_repository.save(user)
email_service.send_welcome_email(user)
🚩Плюсы
➕Упрощение кода
Код становится проще для понимания, так как каждый класс выполняет только одну задачу.
➕Улучшение тестируемости
Легче писать тесты для классов, которые имеют одну ответственность.
➕Повышение гибкости
Проще вносить изменения в один аспект системы, не затрагивая другие.
➕Улучшение повторного использования
Классы, реализующие одну задачу, могут быть повторно использованы в других частях системы или в других проектах.
Ставь 👍 и забирай 📚 Базу знанийnpx create-next-app@latest my-isomorphic-app
cd my-isomorphic-app
npm run dev
Создание страницы с серверным рендерингом
// pages/index.js
import React from 'react';
const Home = ({ message }) => (
<div>
<h1>{message}</h1>
</div>
);
export async function getServerSideProps() {
return {
props: {
message: 'Hello from the server!',
},
};
}
export default Home;
Ставь 👍 и забирай 📚 Базу знаний