python oops_Python:将脚本从过程转换为oopsty

在OOP中,您可以通过识别代码和数据来重新构建它。然后将这些合并为“类”。在

上面的实际数据似乎是一个进程的输出。

代码正在迭代它。如果你想的话,我想你可以用它来上课,但这有点傻。:)

因此,类似这样的代码(显然完全未经测试的代码):import sys

import subprocess

class Fanspeed(object):

def __init__(self, command):

self.command = command.split()

def average_fan_speed(self):

data = subprocess.Popen(CMD,stdout=subprocess.PIPE).stdout.readlines()

count = total = 0

for item in data:

if "Reading" in item:

# Extract variable length fan speed, without regex.

total += int(item.split(":")[1].split()[0])

count += 1

# Sometimes omreport returns zero output if omsa services aren't started.

if not count or not total:

raise ValueError("I found no fans. Is OMSA services started?"

avg = (total / count)

return % avg

if __main__ == '__main__':

# Munin populates sys.argv[1] with "" (an empty argument), lets remove it.

sys.argv = [x for x in sys.argv if x]

if len(sys.argv) > 1:

if sys.argv[1].lower() == "autoconfig":

print "autoconfig"

elif sys.argv[1].lower() == "config":

print "graph_title Average Fan Speed"

print "graph_args base 1000 -l 0"

print "graph_vlabel speed (RPM)"

print "graph_category Chassis"

print "graph_info This graph shows the average speed of all fans"

print "graph_period second"

print "speed.label speed"

print "speed.info Average fan speed for the five minutes."

else:

try:

cmd = "/usr/sbin/omreport chassis fans"

fanspeed = Fanspeed(cmd)

average = fanspeed.average_fan_speed()

except OSError, e:

print >> sys.stderr, "Error running '%s', %s" % (cmd, e)

sys.exit(1)

except ValueError, e:

# Sometimes omreport returns zero output if omsa services aren't started.

print >> sys.stderr, 'Error: "omreport chassis fans" returned 0 output.'

print >> sys.stderr, 'OMSA running? Try: "srvadmin-services.sh status".'

sys.exit(1)

但是YMMV。也许更清楚一点。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值