假设我有一个班级的不同实例;
class Person(object):
def __init__(self, id):
self.id = id
Joe = Person('123')
Sarah = Person('321')
现在我的问题是,我如何能够在不事先知道名称的情况下使用其中一个实例,例如,我可能有一些要求输入名称甚至ID的东西。如何将其与适当的对象关联?假设输入的ID为“ 123”,我如何知道它属于Joe
对象,然后动态使用该对象?如果该信息有用,我正在运行Python 3.6。
在学习计算机程序设计时,您可能会听到一个不太真实的笑话,即只有三个重要的数字:0、1和无穷大。换句话说,您可能什么都不是,也可能什么都不是,但是如果您可以拥有多个,则必须准备好处理任意数量的东西。
当您只能有零个或一个东西时,将其放在变量中就可以了。但是,当您可以拥有任意数量的东西时,此解决方案很快就会变得笨拙。程序员喜欢的解决方案是将对象放在列表或字典之类的容器中。
例如,字典方法:
people = {"123": Person("123"), "321": Person("321")}
然后乔是people["123"]
。
实际上,您也希望将人员的姓名存储在对象中,否则您将无法分辨姓名的真实代表,因此请将其添加到Person
班级中。您还可以在实例化该对象时将其自身添加到主命令中:
people = {}
class Person(object):
def __init__(self, id, name):
self.id = id
self.name = name
people[id] = self
joe = Person("123", "Joe")
sarah = Person("321", "Sarah")
现在,当您实例化对象时,它们将people
通过其ID自动添加到字典中,您可以这样访问它们。(您也可以按名称添加名称,前提是名称是唯一的:如果ID和名称永远不会冲突,即使是同一词典也是如此。)
注意“调用”在编程中有特定含义:调用函数。您在这里什么都没打电话。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句