提取Python自定义类实例列表的str_a属性是否需要修改原类
结论
你完全不需要对原有StringHolder类做任何适配。
实现方法
直接遍历实例列表提取str_a属性即可,示例代码如下:
from typing import List # 假设你已经完成了holder列表的初始化 str_a_list: List[str] = [item.str_a for item in holder] # 按你的需求去重即可 unique_str_a = list(set(str_a_list))
原因说明
你需要去重的对象是从实例中提取出的字符串值,Python的字符串原生支持哈希运算、相等判断,完全满足set的存储要求,整个过程只需要读取实例的公开属性,不需要修改原类的任何逻辑。只有当你需要直接对StringHolder实例本身做去重、排序这类操作时,才需要给类新增对应的特殊方法实现。
内容的提问来源于stack exchange,提问作者cdub
相关产品推荐
相关产品推荐

