学习笔记———Python内置函数dir()

dir([object])----可以带参数,也可以不带参数

1、当不带参数时,返回当前作用域内的变量、方法和定义的类型列表。

>>>dir()

['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__pack

age__', '__spec__', 'os']  # 有import os

>>> l =[ ]  #创建名为 l 的 list(切换到notepad目录下了)

>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__pack
age__', '__spec__', 'l']

>>> import os #多了import os
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__pack
age__', '__spec__', 'l', 'os']

2. 当参数对象是模块时,返回模块的属性、方法列表。

>>> import math
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh'
, 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh',
'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fm
od', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'is
inf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan'
, 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

3. 当参数对象是类时,返回类及其父类的属性、方法列表。

>>> class Student():
... pass
...
>>> dir(Student)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__form
at__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_s
ubclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclas
shook__', '__weakref__']

>>> class Student():
... def count(self):
... return 100
...
>>> dir(Student)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__form
at__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_s
ubclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclas
shook__', '__weakref__', 'count']   #多一个count方法

4. 当对象继承的类定义了__dir__方法,则dir(对象)返回__dir__方法的结果,而dir(父类)则返回类的方法、属性列表。

>>> class D():
... def __dir__(self):
...   return [1,2]       #即使不return一个list,最后dir(object)依然显示为一个list
...
>>> m = D()
>>> dir(m)
[1, 2]

原文地址:https://www.cnblogs.com/lyu454978790/p/8671277.html