Python 从与类项关联的字符串中获取类项的属性
我有一个利基问题。我创建了一个类classA,具有属性name和number。创建类项后,其名称将作为字符串存储在一个名为namesList的列表中。在代码的后面,会打印名称列表,用户可以输入字符串输入。如果该输入与namesList中的字符串匹配,我希望程序打印与该类项关联的number属性。我该怎么做?我想你想做的是:Python 从与类项关联的字符串中获取类项的属性,python,Python,我有一个利基问题。我创建了一个类classA,具有属性name和number。创建类项后,其名称将作为字符串存储在一个名为namesList的列表中。在代码的后面,会打印名称列表,用户可以输入字符串输入。如果该输入与namesList中的字符串匹配,我希望程序打印与该类项关联的number属性。我该怎么做?我想你想做的是: namesList = [] class classA: def __init__(self, name, number): self.name =
namesList = []
class classA:
def __init__(self, name, number):
self.name = name
self.number = number
namesList.append(self.name)
example_Class = classA('example', 5)
userChoice = input('Which name do you need the number for?')
for name in namesList:
if name == userChoice:
print('The number is', example_Class.number)
您必须将classA('example',5)
设置为等于一个变量example\u Class
,然后如果您想访问存储的数值,它只是example\u Class.number
编辑
无论有多少类项,此代码都应该工作:
class Iterator(type):
def __iter__(cls):
return iter(cls.namesList)
class ClassA(metaclass=Iterator):
namesList = []
def __init__(self, name, number):
self.name = name
self.number = number
self.namesList.append(self)
example_Class1 = ClassA('one', 8)
example_Class2 = ClassA('two', 7)
example_Class3 = ClassA('three', 6)
userChoice = input('Which name do you need the number for?')
for class_name in ClassA:
if class_name.name == userChoice:
print('The number is', class_name.number)
ClassA
只是一个类。您试图在最后一行引用它,这导致了一个错误。与此相反,将对象追加到列表中会更好,因为这样您可以在数组中搜索时从对象中单独获取值
namesList=[]
A类:
定义初始化(自我、姓名、编号):
self.name=名称
self.number=number
namesList.append(self)
def getNumber(自身):
返回自我编号
def getName(self):
返回self.name
示例='c'
A类(示例5)
userChoice=input('您需要哪个名称的号码?')
对于名称列表中的名称:
如果name.getName()==userChoice:
nameIndex=namesList.index(名称)
打印(名称索引)
打印('name.getNumber()的当前价格)
用你自己的话来说,你希望代码行classA(示例5)
做什么?用你自己的话来说,什么是一门课,你认为它是为了什么?嗨,谢谢你的贡献。我想我对问题或示例代码不够清楚。对于这段代码,这个解决方案是可行的,但在我的程序中,用户可以添加任意数量的类项,因此我不能在这里的示例_class.number中硬编码,而是需要一种通用的方法来实现。嘿,谢谢你澄清这一点。事实上,我在网上发现了类似的情况。我已经更新了答案,找到了更好的解决方案。