⇤ ← Версия 1 от 2017-11-19 17:52:07
1514
Комментарий:
|
← Версия 2 от 2017-11-19 17:54:12 ⇥
1622
|
Удаления помечены так. | Добавления помечены так. |
Строка 24: | Строка 24: |
Почему так? Потому что в нашем объекте, помимо четырёх заданных нами полей (`var`, `res`, `__init__()` и `fun()`, имеются ещё 24 спецполя, созданные Python-ом (из них 20 — callable). Вот полный список: `Var __class__() __delattr__() __dict__ __dir__() __doc__ __eq__() __format__() __ge__() __getattribute__() __gt__() __hash__() __init__() __le__() __lt__() __module__ __ne__() __new__() __reduce__() __reduce_ex__() __repr__() __setattr__() __sizeof__() __str__() __subclasshook__() __weakref__ fun() res`. | Почему так? Потому что в нашем объекте, помимо четырёх заданных нами полей (`var`, `res`, `__init__()` и `fun()`, имеются ещё 24 спецполя, созданные Python-ом (из них 20 — callable). Вот полный список: `Var`, `__class__()`, `__delattr__()`, `__dict__`, `__dir__()`, `__doc__`, `__eq__()`, `__format__()`, `__ge__()`, `__getattribute__()`, `__gt__()`, `__hash__()`, `__init__()`, `__le__()`, `__lt__()`, `__module__`, `__ne__()`, `__new__()`, `__reduce__()`, `__reduce_ex__()`, `__repr__()`, `__setattr__()`, `__sizeof__()`, `__str__()`, `__subclasshook__()`, `__weakref__`, `fun()`, `res`. |
Написать фрагмент программы (функцию) fields(obj), которая будет подсчитывать, сколько всего полей в объекте obj, и сколько из них — «методы» (точнее говоря, сколько из них можно вызвать как функцию. fields возвращает кортеж из указанных двух значений.
Для решения понадобятся функции dir(), getattr() и callable() (см. документацию
(28, 22)
Почему так? Потому что в нашем объекте, помимо четырёх заданных нами полей (var, res, __init__() и fun(), имеются ещё 24 спецполя, созданные Python-ом (из них 20 — callable). Вот полный список: Var, __class__(), __delattr__(), __dict__, __dir__(), __doc__, __eq__(), __format__(), __ge__(), __getattribute__(), __gt__(), __hash__(), __init__(), __le__(), __lt__(), __module__, __ne__(), __new__(), __reduce__(), __reduce_ex__(), __repr__(), __setattr__(), __sizeof__(), __str__(), __subclasshook__(), __weakref__, fun(), res.