欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 類魔法方法

謝彥文2年前8瀏覽0評論

Python作為一種面向對象的編程語言,類是其一大特色。在Python中,每個class都有一些特殊的方法,它們被稱為類魔法方法(Magic Method),也稱為特殊方法(Special Method)。

class MyClass:
def __init__(self, name):
self.name = name
def __str__(self):
return f"My name is {self.name}."

上述代碼中,__init__和__str__就是兩個常用的類魔法方法。下面簡要介紹幾個常用的類魔法方法。

__new__和__init__

class MyClass:
def __new__(cls, *args, **kwargs):
print("__new__ is called")
instance = super().__new__(cls)
return instance
def __init__(self):
print("__init__ is called")
obj = MyClass()
# __new__ is called
# __init__ is called

__new__方法在實例化對象時最先被調用,作用是創建并返回一個新的實例對象,同時__init__方法將得到實例對象。如果__new__方法返回的是一個已有實例,那么__init__方法就不會被調用。

__str__和__repr__

class MyClass:
def __init__(self, name):
self.name = name
def __str__(self):
return f"My name is {self.name}."
def __repr__(self):
return f"MyClass(name={self.name})"
obj = MyClass("Alice")
print(obj) # My name is Alice.
print(repr(obj)) # MyClass(name=Alice)

__str__方法用于在調用print()函數時以字符串形式輸出對象,而__repr__方法則返回一個字符串表示對象,主要是方便開發人員調試使用。

__getitem__和__setitem__

class MyList:
def __init__(self, *args):
self.items = list(args)
def __getitem__(self, index):
return self.items[index]
def __setitem__(self, index, value):
self.items[index] = value
mylist = MyList(1, 2, 3, 4)
print(mylist[2]) # 3
mylist[2] = 5
print(mylist[2]) # 5

__getitem__方法用于獲取對象中的元素,使對象能夠像序列那樣被索引和迭代。__setitem__方法則用于修改對象中的元素。

總結

以上是Python中常用的幾個類魔法方法,還有其他方法如__call__、__len__、__iter__等,可以根據需求靈活運用。