簡體   English   中英

如何使用python在循環中創建具有不同名稱的對象?

[英]how to create objects with different names within a loop using python?

該問題的答案將起作用,或者我讀到您不需要實際命名它們……所以我嘗試了以下操作:

class Entry():
    __slots__ = ('name', 'gender', 'occurances')

def mkEntry(name_foo, gender_foo, occurances_foo):
    myEntry = Entry
    myEntry.name = name_foo
    myEntry.gender = gender_foo
    myEntry.occurances = occurances_foo
    return myEntry

def topTwenty(fileName):
    file = open(fileName)
    topTwenty = []
    femaleCount = 0
    maleCount = 0
    for line in file:
        a = line.split(",")
        if a[1] == 'F' and femaleCount < 20:
            topTwenty.append(mkEntry(a[0], a[1], a[2]))
            femaleCount = femaleCount + 1
    print(topTwenty[7].name)

但是print(topTwenty [7] .name)正在打印我對topTwenty [20] .name的期望

有什么幫助嗎?

您需要執行myEntry = Entry()來創建該類的實例。 現在,您只是每次都覆蓋同一類的屬性,並且每次都將同一類附加到列表中。 您的列表僅包含相同項目20次。

無論如何,這是一種奇怪的方式。 為什么不將代碼從mkEntry移到Entry類的__init__ ,以將初始化與類保持在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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