2016-11-18 36 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类中会更好 –