Python Learning
34.6K subscribers
1.91K photos
8 videos
7 files
913 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://yangx.top/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
加入频道
Что будет выведено при выполнении кода?

Пояснение
⬇️
Метод @property превращает radius в геттер, а метод @radius.setter добавляет проверку значения. Сначала radius возвращает 5, затем успешно устанавливается в 10. Код выполняется корректно.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥1
👍8🍾5❤‍🔥2
⚙️ asyncio.gather()

Метод asyncio.gather() из модуля asyncio позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥3❤‍🔥1
⚙️ inspect.getclosurevars()

Метод inspect.getclosurevars() из модуля inspect позволяет извлечь значения замыканий из функции. Это полезно для анализа внутреннего состояния функций с замыканиями.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥2
Вопрос на собеседовании

Что такое метаклассы в Python, как они работают, и зачем их использовать?

Ответ ⬇️
Метакласс в Python — это класс, который управляет созданием других классов. Обычно метаклассы используются, если нужно модифицировать или дополнить поведение классов во время их создания. Метакласс контролирует процесс создания класса и может добавлять новые методы, изменять существующие атрибуты или проверять корректность структуры класса.

Метаклассы задаются через ключевое слово metaclass в определении класса. Например, можно создать метакласс, чтобы автоматически добавлять новые методы или атрибуты.


Пример использования ⚙️
# Создаем метакласс
class MyMeta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Hello from {name}!"
return super().__new__(cls, name, bases, dct)

# Используем метакласс
class MyClass(metaclass=MyMeta):
pass

obj = MyClass()
print(obj.greet()) # Вывод: Hello from MyClass!


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤‍🔥2
Вопрос на собеседовании

Как работает __getattr__ и __getattribute__ в Python, и в чём между ними разница?

Ответ ⬇️
__getattr__ и __getattribute__ — это специальные методы для управления доступом к атрибутам объекта.

__getattribute__ вызывается для любого обращения к атрибуту объекта.
__getattr__ вызывается только в случае, если атрибут не найден стандартным способом.

Разница: __getattribute__ перехватывает все обращения, а __getattr__ только пропущенные. Это делает __getattr__ безопаснее для использования, так как он не нарушает стандартный процесс получения атрибутов.


Пример использования ⚙️
class MyClass:
def __getattr__(self, name):
return f"Атрибут {name} отсутствует!"

def __getattribute__(self, name):
if name == "special":
return "Это особый атрибут"
return super().__getattribute__(name)

obj = MyClass()
print(obj.special) # Это особый атрибут
print(obj.undefined) # Атрибут undefined отсутствует!


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
⚙️ weakref.WeakValueDictionary()

weakref.WeakValueDictionary из модуля weakref создаёт словарь, где значения являются слабой ссылкой на объекты. Это полезно для кэширования данных, которые должны автоматически удаляться, когда больше нет других ссылок на объект.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11❤‍🔥4
Друзья, на связи ваш админ.
Я тут сделал бота для знакомств @tinder. Буду рад, если вы оцените и воспользуетесь. Если буду какие-то замечания, пишите, буду благодарен)
😁16🗿6❤‍🔥1
Вопрос на собеседовании

Что такое метаклассы в Python, как они работают, и зачем их использовать?

Ответ ⬇️
Метакласс в Python — это класс, который управляет созданием других классов. Обычно метаклассы используются, если нужно модифицировать или дополнить поведение классов во время их создания. Метакласс контролирует процесс создания класса и может добавлять новые методы, изменять существующие атрибуты или проверять корректность структуры класса.

Метаклассы задаются через ключевое слово metaclass в определении класса. Например, можно создать метакласс, чтобы автоматически добавлять новые методы или атрибуты.


Пример использования ⚙️
# Создаем метакласс
class MyMeta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Hello from {name}!"
return super().__new__(cls, name, bases, dct)

# Используем метакласс
class MyClass(metaclass=MyMeta):
pass

obj = MyClass()
print(obj.greet()) # Вывод: Hello from MyClass!


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥51
⚙️ traceback.format_exc()

Метод traceback.format_exc() из модуля traceback используется для получения форматированной строки трассировки исключения. Это полезно для логирования ошибок или их анализа.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥4🎉1
⚙️ os.getpid()

Метод os.getpid() возвращает идентификатор текущего процесса. Это полезно для отладки и мониторинга выполнения программ.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤‍🔥3🏆2
⚙️ uuid.uuid4()

Метод uuid.uuid4() из модуля uuid генерирует случайный UUID (универсально уникальный идентификатор), основанный на случайных данных. Это полезно для создания уникальных идентификаторов для объектов.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🥰3
⚙️ pathlib.Path.exists()

Метод pathlib.Path.exists() используется для проверки существования файла или директории. Это удобный способ работы с файловой системой в Python.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤‍🔥2🤔1
🚀 Хотите создать своего Telegram-бота и ворваться в мир Python-разработки?

👨‍💻 На бесплатном открытом уроке 16 января вы узнаете, как за 2 часа создать функционального Telegram-бота с нуля:

— Установка и настройка Python-telegram-bot.

— Создание бота: от идеи до реализации.

— Расширение возможностей с дополнительными функциями.

🤖 Представьте, как ваш бот помогает автоматизировать задачи, такие как обработка данных, управление файлами и отправка электронных писем, а также открывает возможности для заработка! Начните путь востребованного разработчика уже сейчас.

👉 Регистрируйтесь на вебинар в преддверии старта курса «Python Developer. Basic» и 🔥 получите скидку на обучение: https://clck.ru/3FjvdB

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥5😱2
⚙️ secrets.token_hex()

Метод secrets.token_hex() используется для генерации безопасных случайных токенов. Это полезно для создания уникальных идентификаторов, паролей или API-ключей.

Python Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤‍🔥4
Что будет выведено при выполнении кода?

Пояснение
⬇️
Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Переменные x и y ссылаются на один объект, поэтому x is y возвращает True. Переменная z — новый объект с тем же содержимым, но другой областью в памяти, поэтому x is z возвращает False.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤‍🔥2
Что будет выведено при выполнении кода?

Пояснение
⬇️
*args собирает все позиционные аргументы в кортеж (1, 2, 3), а **kwargs собирает именованные аргументы в словарь {'a': 4, 'b': 5}. Код корректен и выводит оба объекта в соответствующем формате.


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥1
Вопрос на собеседовании

Что такое методическое разрешение (MRO) в Python, как его проверить и зачем оно нужно?

Ответ ⬇️
Методическое разрешение (MRO) определяет порядок, в котором Python ищет методы и атрибуты в иерархии классов при наследовании. MRO важен для работы с множественным наследованием, так как помогает избежать конфликтов и гарантирует корректное разрешение зависимостей.

MRO можно проверить с помощью атрибута __mro__ или функции mro(). Python использует алгоритм C3-линеаризации для вычисления MRO.


Пример использования ⚙️
class A:
def method(self):
print("Метод класса A")

class B(A):
def method(self):
print("Метод класса B")

class C(A):
def method(self):
print("Метод класса C")

class D(B, C):
pass

print(D.__mro__) # (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)

d = D()
d.method() # Метод класса B


Python Learning
👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤‍🔥1