MST

星途 面试题库

面试题:Python自定义类实例字符串忽略大小写比较

假设有一个自定义类MyClass,类中有一个字符串属性。现在要求实现该类实例之间忽略大小写的比较功能,使得当两个实例的字符串属性在忽略大小写后相同时,比较结果为True。请编写完整的Python代码实现该功能,并解释代码的关键部分。
41.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
class MyClass:
    def __init__(self, value):
        self.value = value

    def __eq__(self, other):
        if isinstance(other, MyClass):
            return self.value.lower() == other.value.lower()
        return False

代码关键部分解释

  1. __init__方法:这是类的构造函数,用于初始化实例的value属性。当创建MyClass的实例时,会传入一个字符串值,这个值会被赋给self.value
  2. __eq__方法:这是Python的魔法方法,用于定义相等比较(==操作符)的行为。
    • isinstance(other, MyClass):首先检查other是否是MyClass类的实例。如果不是,直接返回False,因为只有同类实例之间才进行这种特定的比较。
    • self.value.lower() == other.value.lower():如果otherMyClass类的实例,将两个实例的value属性都转换为小写形式,然后进行比较。如果转换为小写后的值相等,则返回True,否则返回False