Python,从类方法中删除列表项

3

我有一个类。

我想在里面创建一个方法,通过 code 属性删除列表项。

class MyClass(Base):
    def __init__(self, code, name):
        self.__code = code
        self.__name = name
    @property
    def code(self):
        return self.__code
    @property
    def name(self):
        return self.__name
    @code.setter
    def code(self, new_code):
        self.__code=new_code
    def __repr__(self):
        x = f"Code: {self.__code} and Name:{self.__name}"
        return(x)
    def __deleteitem__(self, code):
        print("The code: {self.__code} was deleted")

list=[]
list.append(MyClass(1234,"Aijio"))
list.append(MyClass(123,"Anodnd"))
list.append(MyClass(1236,"Jfifi"))
list.append(MyClass(1238,"Roberto"))

print(list)

lista.deleteitem(123)

我如何创建一个删除我发送的代码的方法?

敬礼


1
我想知道这个描述是否有所帮助?(链接见上文) - sophros
1
从哪里删除代码 - 从列表中?当你从列表中删除时,为什么需要该方法在类中?尝试像这样做: list = [item for item in list if item.code != 123] - yedpodtrzitko
没有__deleteitem__特殊方法。你是不是想说__delitem__呢? - Martijn Pieters
1个回答

0
你可以尝试下面的代码:

class MyClass(Base):
        def __init__(self, code, name):
            self.__code = code
            self.__name = name
        @property
        def code(self):
            return self.__code
        @property
        def name(self):
            return self.__name
        @code.setter
        def code(self, new_code):
            self.__code=new_code
        def __repr__(self):
            x = f"Code: {self.__code} and Name:{self.__name}"
            return(x)
        def __deleteitem__(self, code):

            # Logic for deletion

            for obj in list:
                if obj.code == code:
                    list.remove(obj)
            print("The code: "+code+" was deleted")

    list=[]
    list.append(MyClass(1234,"Aijio"))
    list.append(MyClass(123,"Anodnd"))
    list.append(MyClass(1236,"Jfifi"))
    list.append(MyClass(1238,"Roberto"))
    myclass = MyClass(None, None)
    myclass.__deleteitem__(123)

嗨,谢谢你的回答,你怎么称呼那个方法? - Webb
你需要创建一个你的类的虚拟对象。我已经编辑了我的答案。 - Abhishek Kulkarni
这段代码存在几个严重问题。其中之一是要删除的列表被硬编码了(!!)。 - VPfB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接