{site_name}

{site_name}

🌜 搜索

Python特殊方法名称是以双下划线(__)开头和结尾的方法,用于定义类的行为

Python 𝄐 0
python中的特殊方法,python方法名命名规范,python特殊方法的意义,python特殊代码,python的特殊符号,python中特殊含义符号
Python特殊方法名称是以双下划线(__)开头和结尾的方法,用于定义类的行为。这些方法被称为魔法方法(magic methods),也称为Dunder方法(因为“dunder”是“double underscore”缩写)。它们允许我们自定义Python内置类型的行为,并使自己定义的类与Python标准库的其他部分更加兼容。

以下是一些常用的Python特殊方法及其说明:

1. __init__(self, ...):构造函数,用于初始化一个新对象。
python
class MyClass:
def __init__(self, name):
self.name = name

obj = MyClass("Alice")
print(obj.name) # 输出 "Alice"


2. __str__(self):字符串表示形式,用于打印对象时所显示的字符串。
python
class MyClass:
def __init__(self, name):
self.name = name

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

obj = MyClass("Alice")
print(obj) # 输出 "My name is Alice"


3. __len__(self):长度,用于返回对象的长度(通常是集合或序列类型的对象)。
python
class MyList:
def __init__(self, items):
self.items = items

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

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


4. __getitem__(self, key):索引,用于通过索引获取对象中的元素。
python
class MyList:
def __init__(self, items):
self.items = items

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

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


5. __setitem__(self, key, value):项赋值,用于通过索引设置对象中的元素。
python
class MyList:
def __init__(self, items):
self.items = items

def __setitem__(self, index, value):
self.items[index] = value

lst = MyList([1, 2, 3])
lst[0] = 4
print(lst.items) # 输出 [4, 2, 3]


6. __call__(self, ...):调用,使对象可以像函数一样被调用。
python
class MyFunc:
def __call__(self, x):
return x * 2

func = MyFunc()
print(func(3)) # 输出 6