Class Contact():
def __init__(self, name, phone):
self.obj1 = obj1
self.obj2 = obj2
Class Phonebook():
def __init__(self):
# leave this empty for now
def add(self, contact):
contact = Contact()
contact1 = Contact('Name', '000')
a = Phonebook()
a.add(contact1)
我做错什么了?
有别的方法初始化吗?
我试图在一个类中建立一个联系人,然后在我创建它之后,我将它添加到电话簿中。你知道吗
这段代码有很多问题。你知道吗
首先,正如Azat Ibrakov所指出的,
Class
不是一个有效的关键字;您需要class
。你知道吗当我们这样做的时候,虽然
class Contact():
是有效的,但是没有理由使用空括号。你知道吗所以:
下一步,
Contact.__init__
尝试使用名为obj1
和obj2
的变量,这些变量不存在,但会因NameError
而失败。你知道吗它还接受名为
name
和phone
的参数,但从不使用它们。想必这些就是您想要存储的值。你知道吗另外,虽然这不是一个错误,但将姓名和电话号码存储在名为
obj1
和obj2
的属性中并不是很有用;给它们一些有意义的属性名。你知道吗所以:
下一步,
Phonebook.add
尝试创建一个新的Contact
,但没有为它传递name
和phone
的参数,因此将以TypeError
失败。你知道吗但是你应该通过什么论点呢?你没有名字,也没有电话号码。你知道吗
你有一个
contact
参数。您试图丢弃该值并用一个全新的Contact
对象替换它,但为什么要这样做呢?你肯定想用传递过来的那个。你知道吗所以,要修复
Phonebook.add
…它真的没有什么可做的:但你的目标是在电话簿中添加联系人。这意味着你必须把这些联系人储存在某个地方。你知道吗
电话簿就像一本字典,在那里你可以按姓名查找联系信息。所以,让我们使用
dict
。这应该是Phonebook
对象的一个属性,这意味着我们希望在__init__
中创建它,因此我们可以在以后的add
等其他方法中使用它:如果要将联系人添加到电话簿中,则需要某种方法来存储它们,因此构造函数不能为空。它需要一份清单
您已经创建了一个联系人对象,因此不需要在add函数中创建另一个联系人对象
相关问题 更多 >
编程相关推荐