TGViewer
Python Developer Python Developer @python_tg · 20.9K subscribers
Post #2453 4.93K
🐍 Динамическое добавление атрибутов к объектам

А вы знали, что в Python объектам можно присваивать новые атрибуты даже в том случае, если они не были заранее определены в классе?

Это возможно благодаря динамической природе языка и внутреннему устройству объектов.

Рассмотрим пример:

class Point:
pass

p = Point()
p.x = 1
p.y = 2

print(p.x, p.y) # → 1 2


Класс Point не содержит определения атрибутов x и y, однако они корректно работают. Почему?

Каждый пользовательский объект по умолчанию имеет специальный словарь __dict__, в который записываются все атрибуты экземпляра.

print(p.__dict__)
# {'x': 1, 'y': 2}


Команда p.x = 1 фактически означает добавление ключа 'x' со значением 1 в p.__dict__.

Подытожим: Python позволяет свободно добавлять атрибуты к объектам. Это удобно, но в реальных проектах лучше задавать их явно через __init__ — так надёжнее и понятнее.

❤ — если было полезно
😎 — если уже знал об этом

tags: #обучение

➡ Python Developer | Чат
  • ❤ 47
  • 😎 14
  • 👍 5
  • 🤯 3
More from @python_tg
  1. Oct 8, 2026📱 Пишем свой WSGI-сервер на Python Автор спускается на уровень Linux и показывает, как ус…
  2. Oct 7, 2026📱 270 инструментов для Python-разработчика В репозитории есть: 🫡 Линтеры и форматтеры; �…
  3. Oct 6, 2026📱 GraphQL vs REST: что выбрать для API В статье на одном примере разбирают разницу между…
  4. Oct 5, 2026Post #4052
  5. Oct 5, 2026📱 Один инструмент вместо половины Python-тулчейна Он может заменить pip, pip-tools, pipx,…
  6. Oct 4, 2026📱 Как ускорить Python-код с помощью типизации В статье разбирают: 🫡 Компиляцию типизиров…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →