Python如何通过其属性查找对象?

时间:2016-11-18 14:58:21

标签: 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),在band类中找到对象河流并获取其名称属性?

感谢您花时间阅读本文并度过愉快的一天。

2 个答案:

答案 0 :(得分:0)

  

在这段代码中,有没有办法让我使用数字(比方说1),在band类中找到对象河流并获取其名称属性?

在此代码中,NO。因为您没有将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的{​​{1}}为number的{​​{1}}类:

1

答案 1 :(得分:0)

您可以将字典映射编号存储到频段以实现该目的。

例如

bands = {}

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

def getBandFromNumber(number):
   return bands[number]