从模块调用函数时,您能说出返回的内容吗? (蟒蛇)

时间:2013-12-08 21:01:15

标签: python

听起来可能听起来有些讽刺但我说我从模块psutils调用一个函数,有没有办法说出我想要的值

例如:

    psutil.swap_memory()

返回

    swap(total=A, used=B, free=C, percent=D, sin=0, sout=0)

有没有办法让它只返回B和C?

2 个答案:

答案 0 :(得分:2)

有几种方法,最明显的是:

info = psutil.swap_memory()
used, free = info.used, info.free

返回的对象实际上是一个类似元组的对象,所以你也可以将它切片然后解压缩它:

used, free = psutil.swap_memory()[1:3]

还有更复杂的方法,它具有忽略顺序的优点:

from operator import attgetter

used, free = attrgetter('used', 'free')(psutil.swap_memory())

答案 1 :(得分:0)

根据dm03514的帖子,我建议您使用swap_memory()的自定义包装器:

def my_swap_memory():
    _, used, free, _, _, _ = psutil.swap_memory()
    return swap(B=used, C=free)

然后将其称为

returndata = my_swap_memory()