PYPROGLIB Telegram 6105
👀 dir() и vars() — для чего они нужны?

Когда вы работаете в Python REPL или отлаживаете код, иногда полезно быстро взглянуть на объект, с которым вы не до конца знакомы. В такие моменты на помощь приходят две удобные функции: dir() и vars().

🔘dir() — возвращает список всех атрибутов объекта, включая методы и атрибуты класса.
🔘vars() — возвращает словарь атрибутов, которые живут непосредственно в объекте. Методы и атрибуты класса в этом списке отсутствуют.

🪅Допустим, у нас есть класс прямоугольника:
from dataclasses import dataclass

@dataclass
class Rectangle:
width: float
height: float

@property
def area(self):
return self.width * self.height


Мы создаём объект прямоугольника:
rect = Rectangle(3, 4)


Вот что нам покажет dir():
['__annotations__', '__class__', '__dataclass_fields__', '__dataclass_params__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__match_args__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__replace__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'area', 'height', 'width']


А вот что покажет var():
{'width': 3, 'height': 4}


#советы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37



tgoop.com/pyproglib/6105
Create:
Last Update:

👀 dir() и vars() — для чего они нужны?

Когда вы работаете в Python REPL или отлаживаете код, иногда полезно быстро взглянуть на объект, с которым вы не до конца знакомы. В такие моменты на помощь приходят две удобные функции: dir() и vars().

🔘dir() — возвращает список всех атрибутов объекта, включая методы и атрибуты класса.
🔘vars() — возвращает словарь атрибутов, которые живут непосредственно в объекте. Методы и атрибуты класса в этом списке отсутствуют.

🪅Допустим, у нас есть класс прямоугольника:

from dataclasses import dataclass

@dataclass
class Rectangle:
width: float
height: float

@property
def area(self):
return self.width * self.height


Мы создаём объект прямоугольника:
rect = Rectangle(3, 4)


Вот что нам покажет dir():
['__annotations__', '__class__', '__dataclass_fields__', '__dataclass_params__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__firstlineno__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__match_args__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__replace__', '__repr__', '__setattr__', '__sizeof__', '__static_attributes__', '__str__', '__subclasshook__', '__weakref__', 'area', 'height', 'width']


А вот что покажет var():
{'width': 3, 'height': 4}


#советы

BY Библиотека питониста | Python, Django, Flask


Share with your friend now:
tgoop.com/pyproglib/6105

View MORE
Open in Telegram


Telegram News

Date: |

With the administration mulling over limiting access to doxxing groups, a prominent Telegram doxxing group apparently went on a "revenge spree." Concise The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. The Standard Channel Informative
from us


Telegram Библиотека питониста | Python, Django, Flask
FROM American