Python如何通过属性查找对象?
有没有办法通过将对象与其属性匹配来获取对象? 例如:Python如何通过属性查找对象?,python,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) 在这段代码中,有没有一种方法可以让我使用
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类中的对象rivers并获取其name属性
感谢您花时间阅读本文,祝您度过愉快的一天
在这段代码中,有没有一种方法可以让我使用一个数字(比如说1)来查找band类中的对象rivers并获取其name属性
在这段代码中,不是。因为您没有将name
的值保存到class属性中
但是,如果您的类结构是:
class band:
def __init__(self, name, number):
self.number = number
self.name = name # <--- Here is the difference
迭代列表并将编号
值为1
的类的名称
打印为:
for item in my_list:
if item.number == 1:
print item.name
在这段代码中,有没有一种方法可以让我使用一个数字(比如说1)来查找band类中的对象rivers并获取其name属性
在这段代码中,不是。因为您没有将name
的值保存到class属性中
但是,如果您的类结构是:
class band:
def __init__(self, name, number):
self.number = number
self.name = name # <--- Here is the difference
迭代列表并将编号
值为1
的类的名称
打印为:
for item in my_list:
if item.number == 1:
print item.name
为了实现这一点,您可以将字典映射号存储到频带 比如说
bands = {}
class band:
def __init__(self, name, number):
self.number = number
self.name = name
bands[number] = self
def getBandFromNumber(number):
return bands[number]
为了实现这一点,您可以将字典映射号存储到频带 比如说
bands = {}
class band:
def __init__(self, name, number):
self.number = number
self.name = name
bands[number] = self
def getBandFromNumber(number):
return bands[number]
从类中-你是指在类或其他东西中?是的,我的意思是。修复类中的缩进-你是指在类或其他东西中?是的,我的意思是。修复缩进好的,我将在我目前正在进行的项目中尝试这种方式。哇,刚刚意识到我忘记添加self.name=name,我会编辑它,我会在我目前正在做的项目中这样做。哎呀,刚刚意识到我忘了添加self.name=name,我会编辑inIt,将
bands
作为类变量添加到band类中会更好。将bands
作为类变量添加到band类中会更好