这是一个非常神器的函数,作用是解析某个对象或者类的所有内置方法,非常好用。
比如,想知道collections.deque()的方法有哪些:
from collections import deque
a = deque()
dir(a)
输出:
['__add__', '__bool__', '__class__', '__contains__', '__copy__', '__delattr__', '__delitem__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__','__gt__', '__hash__', '__iadd__', '__imul__', '__init__',
'__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__','__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__','__subclasshook__', 'append', 'appendleft', 'clear', 'copy', 'count', 'extend', 'extendleft','index', 'insert', 'maxlen', 'pop', 'popleft', 'remove', 'reverse', 'rotate']
还可以用来看常见的数据结构有哪些内置方法和变量:
dir([])
输出:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__','__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__','__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__','__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__','__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__','__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__','append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
当某些包忘记要引用的具体拼写时,也可以用dir来看
import collections
dir(collections)
输出
['ChainMap', 'Counter', 'OrderedDict', 'UserDict', 'UserList', 'UserString',
'_Link', '_OrderedDictItemsView', '_OrderedDictKeysView', '_OrderedDictValuesView','__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__getattr__','__loader__', '__name__', '__package__', '__path__', '__spec__', '_chain', '_collections_abc', '_count_elements', '_eq', '_heapq', '_iskeyword', '_itemgetter','_proxy', '_recursive_repr', '_repeat', '_starmap', '_sys', '_tuplegetter', 'abc', 'defaultdict', 'deque', 'namedtuple']
最后还可以利用dir()查看当前环境的变量:
dir()
输出:
['OrderedDict', '__annotations__', '__builtins__', '__doc__', '__loader__','__name__', '__package__', '__spec__', 'a', 'b', 'collections', 'deque','np', 'numpy', 'q']
这个东西真是编程的神器