[英]Iterating through a list of objects to assign a class attribute
這是我正在處理的日志解析器的一段代碼。 日志解析器用於刀片服務器機箱,並包含多個刀片服務器。
我從blade_populate()中的for循環中收到以下錯誤:
“預期類型的積分沒有結果”
遍歷此對象列表的正確方法是什么,以便以后可以讓Python開始填充固件(例如iDRAC)?
def blade_create():
blades= []
for servers in range(blade_count()):
blades.append(servers)
return blades
blades = blade_create()
# Parse log to obtain FW revisions for blades
def blade_populate():
for blade in range(blades):
drac = log.readline()
看來您有indnetation錯誤。 函數中的return
語句位於循環內部。 這意味着它或者在循環運行第一次迭代時被命中,或者如果循環根本不運行(因為范圍為空),則根本不return
(在Python中相當於執行return None
)。 。
要解決此問題,請在一級return
語句上不縮進:
def blade_create():
blades= []
for servers in range(blade_count()):
blades.append(servers)
return blades # unindent here!
blades = blade_create()
# Parse log to obtain FW revisions for blades
def blade_populate():
for blade in blades: # this line shouldn't use range if blades is a list
drac = log.readline()
不過,我要指出的是,您的blade_create()
函數等效於range(blade_count())
(如果以后需要修改結果,則可能將list(...)
包裹在其周圍)。 可能您根本不需要單獨的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.