python - 在 Python 中创建列表对象类

标签 python list class append

这是一个基本问题。我正在尝试以下代码:

class SMS_store:

def __init__(self):
    self=[]    #probably something is wrong here

def add_new_arrival(self,from_number,time_arrived,text_of_SMS):
    self.append([False,from_number,time_arrived,text_of_SMS])    #append list to self list
    self[len(self)-1]=tuple(self[len(self)-1])

def message_count(self):
    return len(self)

my_inbox=SMS_store()
my_inbox.add_new_arrival('01234','9:37 AM','How are you?')

但是我得到以下错误:

>>> 
Traceback (most recent call last):
  File "C:\Users\Arnob\Desktop\New Text Document.py", line 15, in <module>
    my_inbox.add_new_arrival('01234','9:37 AM','How are you?')
  File "C:\Users\Arnob\Desktop\New Text Document.py", line 8, in add_new_arrival
    self.append([False,from_number,time_arrived,text_of_SMS])    #append list to self list
AttributeError: 'SMS_store' object has no attribute 'append'
>>>

我的代码有什么问题?

最佳答案

你可以像这样继承list

class SMS_store(list):

    def add_new_arrival(self, from_number, time_arrived, text_of_SMS):
        self.append((False, from_number, time_arrived, text_of_SMS))    #append tuple to self

    def message_count(self):
        return len(self)

请注意,除非您想在那里做一些额外的事情,否则不需要 __init__

你不需要 append 一个列表然后把它变成一个元组,你可以直接用()而不是[]来创建元组

关于python - 在 Python 中创建列表对象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461833/

相关文章:

c - 将列表转换为所需数组的最小步骤算法。 (仅使用 InsertAt 和 DeleteAt)

python - 迭代相同元素的列表

ruby - 具有类继承的错误未初始化常量

添加时克隆元素的Java列表

c# - 如何衡量 C# 中哈希表的性能?

python - 如何使用一个模型中间层的输出作为另一个模型的输入?

Python:无法从 hashlib 导入 scrypt

python - 在 Blender 中使用 graph.sound_bake 时出现 Unicode 语法错误

javascript - jQuery,根据数组检查类

Python:比较两个列表的更好方法?