如何查找Python模块的属性和方法等
假设我导入了一个模块。为了能更好地使用它,我想知道有哪些属性、方法等等可以用。有没有办法可以找到这些信息呢?
举个例子:在Python中确定正在运行的程序
在这一行:
os.system('WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid')
假设我还想打印出这些进程占用的内存。我该怎么知道这是否可行?那它的正确“标签”是什么呢?(就像作者使用的“Commandline”、“ProcessId”一样)
同样,在这个:
import win32com.client
def find_process(name):
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(".", "root\cimv2")
colItems = objSWbemServices.ExecQuery(
"Select * from Win32_Process where Caption = '{0}'".format(name))
return len(colItems)
print find_process("SciTE.exe")
我该怎么让这个函数也打印出占用的内存、可执行路径等等呢?
4 个回答
4
Python 有一个内置的函数叫做 dir()。我不确定你是不是在说这个,但你可以打开一个交互式的 Python 控制台,然后输入:
import datetime
dir(datetime)
这样做会给你一个方法、属性和子模块的列表。
22
dir(module)
会返回这个模块里所有属性的名字。
module.__dict__
是一个字典,它把属性的名字和实际的属性对象联系起来。
module.__dict__.keys()
和 dir(module)
这两个都是包含相同元素的列表,但它们不完全相同,因为里面的元素顺序不一样。
看起来你真正需要的是 help(module)
。
74
关于Python模块,你可以这样做:
>>> import module
>>> help(module)
这样你就能得到一个支持的方法列表(更准确地说,你会得到文档字符串,但这可能不包含每一个方法)。如果你想要更详细的信息,可以使用:
>>> dir(module)
不过这样你会得到这个模块中所有属性、方法、类等的长长一串列表。
在你第一个例子中,你其实是在调用一个外部程序。当然,Python并不知道wmic.exe
有哪些功能。它怎么会知道呢?