Самоанализ Python

Функции, переменные и объекты можно анализировать с помощьюсамоанализ.

Во-первых, используяhelp()global, мы можем получить документацию, если она предоставлена в виде строк документации.

Затем вы можете использовать print () для получения информации о функции:

def increment(n):
    return n + 1

print(increment)

# <function increment at 0x7f420e2973a0>

или объект:

class Dog():
    def bark(self):
        print('WOF!')

roger = Dog()

print(roger)

# <main.Dog object at 0x7f42099d3340>

Вtype()функция дает нам тип объекта:

print(type(increment))
# <class 'function'>

print(type(roger)) # <class ‘main.Dog’>

print(type(1)) # <class ‘int’>

print(type(‘test’)) # <class ‘str’>

Вdir()Глобальная функция позволяет нам узнать все методы и атрибуты объекта:

print(dir(roger))

# [‘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’, ‘bark’]

Вid()Глобальная функция показывает нам расположение в памяти любого объекта:

print(id(roger)) # 140227518093024
print(id(1))     # 140227521172384

Может быть полезно проверить, указывают ли две переменные на один и тот же объект.

ВinspectСтандартный библиотечный модуль дает нам больше инструментов для получения информации об объектах, и вы можете проверить это здесь:https://docs.python.org/3/library/inspect.html


Больше руководств по питону: