Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以对象列表的形式列出所有模块方法和属性_Python_Python 2.7_Python 3.x - Fatal编程技术网

Python 以对象列表的形式列出所有模块方法和属性

Python 以对象列表的形式列出所有模块方法和属性,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我试图深入python并评估一些内置函数。 dir函数返回一个字符串列表,其中包含给定模块的所有属性的名称。 因此,如果运行以下代码段,将得到一个空列表: import string [x for x in dir(string) if callable(x) ] 是否有其他函数或其他方式可以与dirstring结合,以获得对象列表而不是行字符串 我的目标是做如下事情: import string [ x for x in ***(dir(string)) if callable(x) ]

我试图深入python并评估一些内置函数。 dir函数返回一个字符串列表,其中包含给定模块的所有属性的名称。 因此,如果运行以下代码段,将得到一个空列表:

import string
[x for x in dir(string) if callable(x) ]
是否有其他函数或其他方式可以与dirstring结合,以获得对象列表而不是行字符串

我的目标是做如下事情:

import string
[ x for x in ***(dir(string)) if callable(x) ]
而不是类似于中的例子

callablex检查x是一个具有_调用_方法的对象。在您的情况下,它不会,这就是理解返回空列表的原因,这是因为dir返回字符串列表:

字符串值不可调用;这些不是实际的属性值,而是名称

如果要将这些名称作为字符串模块上的属性进行测试,则必须使用,或使用将字符串命名空间作为字典进行测试:

>>> getattr(string, 'Formatter')
<class 'string.Formatter'>
>>> callable(getattr(string, 'Formatter'))
True
>>> [name for name in dir(string) if callable(getattr(string, name))]
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', 'capwords']
>>> [name for name, obj in vars(string).items() if callable(obj)]
['capwords', '_ChainMap', '_TemplateMetaclass', 'Template', 'Formatter']
[obj for obj in vars(string).values() if callable(obj)]

我没有把它链接在这里,不,但我确实考虑连接它。对不起,我以为你读过了。同样,评论是短暂的。如果你批评我的帖子,我最多也不会碰这些评论,我会让另一个国防部看看。如果他们觉得我清理得太快,我会让另一个人看看。问题是,如果当我看到自己的帖子已经过时时,我不清理这些帖子下面的评论,那么它们可能需要很长时间才会过时。我在这里整理一下。谢谢,听起来很合理。不需要另一个mod来查看。我想主要是因为我的胆小。我更新了这个问题,它很糟糕。“你有主意吗?”穆罕默德:好了。
>>> getattr(string, 'Formatter')
<class 'string.Formatter'>
>>> callable(getattr(string, 'Formatter'))
True
>>> [name for name in dir(string) if callable(getattr(string, name))]
['Formatter', 'Template', '_ChainMap', '_TemplateMetaclass', 'capwords']
>>> [name for name, obj in vars(string).items() if callable(obj)]
['capwords', '_ChainMap', '_TemplateMetaclass', 'Template', 'Formatter']
[obj for obj in vars(string).values() if callable(obj)]