-1

我正在尝试创建一个 Python 程序,该程序创建一个可以保存信息并使用联系人对象执行操作的类。基本上它就像一部手机,您可以输入姓名、地址、电话、年龄和类型(如家庭、工作、朋友等)的数据。我对 Python 很陌生,对课程不太熟悉。 .

我想出了类似的东西

CONTACTS = open ("contacts.txt","r")

CONTACT_DATA = CONTACTS.read()

class Contacts(CONTACT_DATA):

      def __init__(CONTACT_DATA, Name= "Unavailable", Address= "Unavailable",   Phone="Unavailable", Age=0, Type=None ):
            CONTACT_DATA.Name = Name
            CONTACT_DATA.Address = Address
            CONTACT_DATA.Phone = Phone
            CONTACT_DATA.Age = Age
            CONTACT_DATA.Type = Type

但我几乎坚持如何将字符串分配给变量。我知道我想使用“设置”和“获取”方法......

contacts.txt 文件看起来像

3 
Albert Einstein
27 Technology Drive
25
555-555-1212
WORK
Sally Field
48 Friendly Street
22
555-555-8484
FRIEND
Marvin Gaye
191 Apple Mountain Road
30
555-555-2222
RELATIVE

3是联系人的数量。

谢谢!

4

1 回答 1

0

您正在使用的可能是可行的,但更像是这样:

class Contact(object):
  def __init__(self, name, address, age, phone, ctype):
    self.name = name,
    self.address = address
    self.age = age
    self.phone = phone
    self.ctype = ctype

# Read off the first line of your data file.
fh = open('contacts.txt')
count = int(fh.readline())

Contacts = [Contact(*c) for c in [[next(fh) for i in range(5)] for j in range(count)]]

如前所述,最后一行确实使用了一些嵌套列表推导。这相当于:

Contacts = []
for j in range(count):
  fields = []
  for i in range(5):
    fields.append(next(fh))
  Contacts.append(Contact(*fields))
于 2013-04-22T17:20:00.527 回答