如何在模块中搜索函数/类?

2024-04-27 00:10:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道模块中是否存在函数/类。 我知道如何使用dir()生成位于模块上层/层次结构的所有类/函数的列表 例如,假设我想知道函数now()是否存在于datetime模块中:

import datetime
dir(datetime)

但是这并没有列出函数now(),因为now()包含在更深的层次中(确切地说是在datetime.datetime)。如何检查now()是否存在? 或者有一种方法可以列出所有级别的所有内容?你知道吗


Tags: 模块方法函数import内容列表datetime层次结构
1条回答
网友
1楼 · 发布于 2024-04-27 00:10:10

这段代码递归地列出模块的内容。但是请注意,如果两个子模块/对象/。。。同名

import time
import datetime

pool=[] # to avoid loops 

def recdir(d,n=''):
    children_all=dir(d)
    children=[c for c in children_all if c[0]!='_' and not c in pool]
    for child in children:
        pool.append(child)
        full_name=n+"."+child
        print "Found: ","'"+full_name+"' type=",eval("type("+full_name+")")
        string="recdir(d."+child+",'"+full_name+"')"
        print "Evaluating :",string
        time.sleep(0.2)
        eval(string)

recdir(datetime,'datetime')

相关问题 更多 >