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)
我在做什么错了?
还有另一种初始化方法吗?
我试图在班级中建立联系,然后在创建它之后,将其添加到电话簿中。
答案 0 :(得分:1)
如果要将联系人添加到电话簿中,则需要某种存储方式,因此构造函数不能为空。它需要一个列表
class Phonebook():
def __init__(self):
self.items = []
def add(self, contact):
self.items.append(contact)
您已经创建了一个Contact对象,因此不需要在add函数中再创建一个
答案 1 :(得分:1)
此代码存在许多问题。
首先,正如Azat Ibrakov指出的,6 x 46917 sparse Matrix of class "dgCMatrix"
[[ suppressing 20 column names ‘date2013-01-02’, ‘date2013-01-03’, ‘date2013-01-04’ ... ]]
108928 . . . . . . . . . . . . . . . . . . . .
596163 . . . . . . . . . . . . . . . . . . . .
583686 . . . . . . . . . . . . . . . . . . . .
597198 . . . . . . . . . . . . . . . . . . . .
824757 . . . . . . . . . . . . . . . . . . . .
613418 . . . . . . . . . . . . . . . . . . . .
108928 ......
596163 ......
583686 ......
597198 ......
824757 ......
613418 ......
.....suppressing columns in show(); maybe adjust 'options(max.print= *, width = *)'
..............................
不是有效的关键字;您想要Class
。
尽管我们class
有效有效,但实际上没有理由加上空括号。
所以:
class Contact():
接下来,class Contact:
尝试使用名为Contact.__init__
和obj1
的不存在的变量,它们将因obj2
而失败。
它也使用名为NameError
和name
的参数,但从不使用它们。大概就是您要存储的值。
虽然这不是错误,但将名称和电话号码存储在名为phone
和obj1
的属性中并不是很有用;给他们有意义的属性名称。
所以:
obj2
接下来,class Contact:
def __init__(self, name, phone):
self.name = name
self.phone = phone
尝试创建一个新的Phonebook.add
,但是不将Contact
和name
的参数传递给它,因此将以{{1 }}。
但是您应该通过哪些论点?您没有名字或电话号码。
您要做有一个phone
参数。您正在尝试舍弃该值,并用全新的TypeError
对象代替它,但是为什么要这样做呢?您肯定要使用传入的密码。
因此,要修复contact
…,实际上根本没有任何事情可做:
Contact
但是您的目标是将联系人添加到电话簿中。这意味着您必须将这些联系人存储在某个地方。
电话簿就像一本字典,您可以在其中查找姓名的联系信息。因此,让我们使用Phonebook.add
。这应该是class Phonebook:
def __init__(self):
# leave this empty for now
def add(self, contact):
# leave this empty too
对象的属性,这意味着我们想在dict
中创建它,因此以后我们可以在其他方法中使用它,例如Phonebook
:
__init__