{site_name}

{site_name}

🌜 搜索

Python特殊属性指的是在类定义中以双下划线(__)开头和结尾的属性,也称为“

Python 𝄐 0
Python特殊属性module,python特殊的数据类型,python提供了哪些特殊属性,python中的特殊字符,python的特殊变量,python特殊列表
Python特殊属性指的是在类定义中以双下划线(__)开头和结尾的属性,也称为“魔术方法”或“魔法方法”,它们具有特殊的行为和功能。这些属性可以被用来实现类似于操作符重载、属性访问控制、对象比较等高级功能。

下面是几个Python特殊属性的例子:

1. __init__: 在创建对象时调用,用于初始化对象的属性。
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

person = Person('Alice', 30)


2. __str__: 返回对象的字符串表示形式,通常用于打印输出或调试。
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def __str__(self):
return f"{self.name} ({self.age})"

person = Person('Alice', 30)
print(person) # 输出 "Alice (30)"


3. __getitem__: 使得对象可以像列表或字典一样进行索引操作。
python
class MyList:
def __init__(self, items):
self.items = items

def __getitem__(self, index):
return self.items[index]

my_list = MyList([1, 2, 3])
print(my_list[0]) # 输出 1


4. __len__: 返回对象的长度,通常用于支持内置函数len()。
python
class MyList:
def __init__(self, items):
self.items = items

def __len__(self):
return len(self.items)

my_list = MyList([1, 2, 3])
print(len(my_list)) # 输出 3


5. __eq__: 定义对象相等的比较方式,通常用于支持运算符==。
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age

def __eq__(self, other):
if isinstance(other, Person):
return self.name == other.name and self.age == other.age
return False

person1 = Person('Alice', 30)
person2 = Person('Bob', 25)
person3 = Person('Alice', 30)
print(person1 == person2) # 输出 False
print(person1 == person3) # 输出 True