Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,从类方法中删除列表项_Python_List_Magic Methods - Fatal编程技术网

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

Python,从类方法中删除列表项,python,list,magic-methods,Python,List,Magic Methods,我上课了。 我想在里面创建一个方法来按代码属性删除列表项 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

我上课了。 我想在里面创建一个方法来按代码属性删除列表项

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)
如何创建一个删除我发送的代码的方法


关于

您可以尝试以下方法:

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)

我想知道是否有帮助?从何处删除代码-从列表中删除?从列表中删除时,为什么该方法需要在类中?请尝试以下操作:
list=[item for item in list if item.code!=123]
没有
\uuuuu deleteitem\uuu
特殊方法。你是说
\uuu delitem\uuuu
可能吗?嗨,谢谢你的回答,你怎么能调用这个方法?你需要为你的类创建一个虚拟对象。我已经编辑了我的答案。这个代码有几个严重的问题。要从硬编码中删除的列表(!!)只是其中之一。