2016-11-18 95 views
1

有沒有辦法通過匹配它的屬性來獲取對象? 例如:Python如何通過屬性查找對象?

class band: 
    def __init__(self, name, number): 
    self.name = name 
    self.number = number 


rivers = band("rivers", 1) 
patrick = band("pat" , 2) 
brian = band("brian" , 3) 
scott = band("scott", 4) 

在這段代碼中,有沒有辦法,我用了一些(可以說1),找到帶班內的對象河流和獲得它的name屬性?

感謝您花時間閱讀本文並祝您有個愉快的一天。

+0

*從*類 - 你的意思是* *內一類或其他什麼東西? – RomanPerekhrest

+0

是的,我的意思是。 –

+0

修復縮進 – depperm

回答

0

在這段代碼中,有沒有一種方法可以讓我使用一個數字(比如說1)來找到band類中的對象河流並獲取它的名稱屬性?

在這段代碼中,因爲您不會將name的值保存到類屬性中。

然而,如果你的類結構就像:

class band: 
    def __init__(self, name, number): 
     self.number = number 
     self.name = name # <--- Here is the difference 

你可以做它。讓我們說riverspatrickbrianscott是列表的一部分:

my_list = [rivers, patrick, brian, scott] 

遍歷表並打印類的name對其中number1爲:

for item in my_list: 
    if item.number == 1: 
     print item.name 
+0

好的,在我目前正在處理的項目中將以這種方式嘗試。 –

+0

哎呀,剛剛意識到我忘了添加self.name = name,我將在 –

0

你可以將字典映射數字存儲爲帶,以實現這一點。

例如

bands = {} 

class band: 
    def __init__(self, name, number): 
     self.number = number 
     self.name = name 
     bands[number] = self 

def getBandFromNumber(number): 
    return bands[number] 
+1

中編輯它將'band'作爲類變量放到band類中會更好 –