这是一个关于面向对象编程(OOP)的非常基础的问题(我使用Python,但实际上这是一个概念性问题,因此不是特定于语言的)。我已经查看了一些教程和书籍,但没有涵盖这个具体问题的。如果我的表述不清楚,我很抱歉并愿意澄清任何我写过的东西。
假设我正在创建一个简单的地址簿,并希望使用pickle将其写入磁盘。我有一个名为“Contact”的类,其中“__init__”接受一些参数(firstName和lastName),我有一个菜单,您可以在其中创建联系人、编辑它们等等。对于我看到的所有OOP示例,他们会做类似以下的事情...
假设我正在创建一个简单的地址簿,并希望使用pickle将其写入磁盘。我有一个名为“Contact”的类,其中“__init__”接受一些参数(firstName和lastName),我有一个菜单,您可以在其中创建联系人、编辑它们等等。对于我看到的所有OOP示例,他们会做类似以下的事情...
bob = Contact('Bob', 'Smith')
jane = Contact('Jane', 'Smith')
...创建新的联系人实例。但是这些都是在运行之前定义好的。如果我希望所有这些实例都由用户输入时动态创建,该怎么办?我是否需要为每个人创建新的实例?如何从用户输入中完成这个操作呢?是将所有实例写入一个列表并进行pickling吗?还是要做一些像...
firstName, lastName = raw_input("Enter first name: "), raw_input("Enter last name: ")
contact = Contact(firstName, lastName)
那么,我只需要将联系人添加到列表中,并在每次想添加用户时获取联系人实例的新值吗?这是一个关键的概念,我并没有真正理解(因为我没有看到任何地方对其进行解释)。我看到的所有示例都不是这样做的,而是为每个事物/人创建新实例,但它们都是预定义的,而不是即时创建的。我会非常感激有人向我解释这个概念。