Python内置函数dir详解
1.命令介绍 最近学习并使用了一个python的内置函数dir,首先help一下: 复制代码 代码如下: >>> help(dir) Help on built-in function dir in module __builtin__:
通过help,可以简单的认为dir列出指定对象或类的属性。 2.实例 下面是一个简单的测试: 复制代码 代码如下: class A: def a(self): pass class A1(A): def a1(self): pass
测试结果: 复制代码 代码如下: dir without arguments: ['A','A1','__builtins__','__doc__','__file__','__name__','__package__'] dir class A: ['__class__','__delattr__','__dict__','__eq__','__format__','__ge__','__getattribute__','__gt__','__hash__','__init__','__le__','__lt__','__module__','__ne__','__new__','__reduce__','__reduce_ex__','__repr__','__setattr__','__sizeof__','__str__','__subclasshook__','__weakref__','a'] dir class A1: ['__class__','a','a1'] dir object a(A1): ['__class__','a1'] dir function a.a: ['__call__','__class__','__func__','__get__','__self__','__subclasshook__'] 3.使用dir查找module下的所有类 最初使用这个函数的初衷,就是在一个module中查找实现的类名,通过该函数可以很容易的实现。 比如把上面的测试程序保存为A.py,再建一个测试程序,内容如下: 复制代码 代码如下: import A if __name__ == '__main__': 结果如下: 复制代码 代码如下: dir module A: ['A','__package__'] 可以看出class A和A1都能够找到。 4.如何找到当前模块下的类 这是一个烦恼较长时间的一个问题,也没有搜到详细的解决方法,下面是我的集中实现方法。 4.1.方法一:在module下面直接调用 比如在上面的A.py最下面添加一行,即可在后续的代码中可以使用selfDir来查找当前的module下的类,修改后的代码如下: 复制代码 代码如下: class A: def a(self): pass class A1(A): def a1(self): pass curModuleDir=dir() # get dir of current file(module) if __name__ == '__main__': 4.2.方法二:import当前module 复制代码 代码如下: # A.py import A as this # import current module class A: def a(self): pass class A1(A): def a1(self): pass if __name__ == '__main__': 4.3.方法三:根据module名称查找module,然后调用dir 我们知道module下面有个属性__name__显示module名称,怎么能够根据module名称来查找module对象呢?可以借助sys.modules。代码如下: 复制代码 代码如下: import sys class A: class A1(A): if __name__ == '__main__': (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |