2024-04-26 17:57:29 发布
网友
我正在尝试创建一个不允许重复入口的类
class QSet(list): def __init__(self,*args): super(QSet, self).__init__(args[0]) self=list(set(self))
当尝试测试类时,没有删除重复的条目
d=["a","b","a","z","a"] z=QList(d) print d print z
有什么解决这个问题的建议吗 谢谢
你知道^{}正是你正在构建的类,对吧?你知道吗
>>> s = set([1,2,3,3,3]) >>> s.add(4) >>> s set([1, 2, 3, 4]) >>> s.add(4) >>> s set([1, 2, 3, 4])
重新分配self实际上并不会改变对象(您只是将标识符self重新绑定到一个新对象)。您可以将行更改为:
self
self[:] = list(set(self))
只需对代码做一点小小的更改,您就可以随心所欲:
class QSet(list): def __init__(self, a): super(QSet, self).__init__(list(set(a)))
我改变了构造函数参数的使用方式,因为接受任意参数是很奇怪的,但是坚持至少有一个参数,而忽略其余的参数。你知道吗
你知道^{} 正是你正在构建的类,对吧?你知道吗
重新分配
self
实际上并不会改变对象(您只是将标识符self
重新绑定到一个新对象)。您可以将行更改为:只需对代码做一点小小的更改,您就可以随心所欲:
我改变了构造函数参数的使用方式,因为接受任意参数是很奇怪的,但是坚持至少有一个参数,而忽略其余的参数。你知道吗
相关问题 更多 >
编程相关推荐