簡體   English   中英

遍歷對象列表以分配類屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM