这是关于OOP的一个非常基本的问题(我使用python但实际上它是一个概念性问题,所以不是特定于语言).我环顾四周,但没有教程或书籍涵盖这个具体问题.如果我不清楚,我道歉,并乐意澄清我写的任何内容.
假设我正在创建一个简单的地址簿,我想用pickle写入磁盘.我有一个类Contact,其中包含__init__一些args(firstName和lastName),我有一个菜单,您可以在其中创建联系人,编辑它们等.对于OOP的所有示例,我看到他们会做类似的事情......
bob = Contact('Bob', 'Smith')
jane = Contact('Jane', 'Smith')
Run Code Online (Sandbox Code Playgroud)
...创建新的联系实例.但这些都是在运行时之前定义的.当我想通过用户输入动态创建所有这些实例时会发生什么?我是否为每个人创建新实例?我如何从用户输入中执行此操作?然后只需将所有实例写入列表并腌制它?或者你做的事......
firstName, lastName = raw_input("Enter first name: "), raw_input("Enter last name: ")
contact = Contact(firstName, lastName)
Run Code Online (Sandbox Code Playgroud)
...然后只需将联系人附加到列表中,并在每次要添加用户时获取联系人实例的新值?这是一个我没有真正得到的关键概念(因为我没有看到它在任何地方解释过).我见过的所有示例都不会执行上述操作,而是为每个事物/人创建新实例,但所有实例都是预先定义的,而不是动态创建的.我真的很感激有人向我解释这个概念.
是的,通常就是这样做的——创建对象数组。或者其他类型的集合,具体取决于您的语言和/或框架。创建新对象时,首先在临时变量中创建它,然后将其插入集合中。
有时,当您有很多对象时,您不会立即从持久存储(如数据库或文件)中加载它们。您只需加载您需要使用的一个(或几个)即可。如果只加载一个,它可能会得到一个特殊的变量。一些人将再次获得收藏。