Python3 dir() 内置函数

译者:anxin
日期:2018-06-11

Python3 dir() 函数是 Python3 提供的一个内置(Build-in)函数,用于获取当前作用域下所有可用的名称(Name)(如:变量,类,函数等),它有一个可选参数“一个对象”,当提供参数对象时,它返回对象内可用的属性。

Python3 dir() 函数语法形式

Python3 dir() 语法形式如下:

dir([object])

函数解释:

  • 包含参数的方括号 [ ] 表示参数是可选参数。
  • 当提供参数对象时,它返回对象内可用的属性,当不提供参数时,它返回当前作用域中可用的名称
  • 当对象内定义了 __dir__() 方法时,调用 dir(object) 函数时,对象内的 __dir__() 方法被调用,并返回在 __dir__() 方法内定义的属性列表。
  • 如对象内没定义了 __dir__() 方法,调用 dir(object) 函数时,返回 __dict__ 属性(如果定义了)和对象的数据类型内包含的属性(包括方法)。

可选参数解释

  • object:任意一个变量对象。

返回值解释

  • 当提供参数对象时,它返回对象内可用的属性,当不提供参数时,它返回当前作用域中可用的名称

Python3 dir() 函数使用方法及示例

1)Python3 dir() 函数是内置函数,在使用时不需要导入任何模块,就可以直接使用。

2)无参数示例展示(返回当前作用域中可用的名称) test.py

#!/usr/bin/env python3

def update_func(var):
    print("var 的内存地址:", id(var))
    var += [4]

lst_1 = [1, 2, 3]

print(dir())

输出的结果:

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'lst_1', 'update_func']

在结果中包含了上面定义了两个名称:一个函数 update_func(),一个列表变量 lst_1

3)定义 __dir__() 函数的示例展示,返回 __dir__() 函数内定义的属性 test.py

#!/usr/bin/env python3

class Shape:
    def __dir__(self):
        return ['area', 'perimeter', 'location']

s = Shape()
print(dir(s))

输出的结果:

['area', 'location', 'perimeter']

4)没有定义 __dir__() 函数的示例展示,返回 __dict__ 属性(如果定义了属性) 和对象的属性类型(type 对象)内的属性列表(包括方法) test.py

#!/usr/bin/env python3

class Shape:
    __dict__ = {'area' : 'china'}

s = Shape()
print(dir(s))

输出的结果:

['__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__', 'area']

在结果中包含了 __dict__ 属性内定义的 area,和数据类型内包含的属性。

本文链接:/tutorial/python3/python3-neizhihanshu-dir

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!