Python魔法方法

2022-09-26 10:09:39 字數 1830 閱讀 7268

test.py

from lei import cat

aa = cat('小困子')

print(aa.__doc__) #檢視類的說明

print(aa.__module__) #檢視類所在位置

print(aa.__class__) #檢視物件所屬類

aa(1,2,3,4,5,6,7,8,9,10) #__call__方法使物件可以被呼叫

print(callable(aa)) #檢視物件是否可以被呼叫

print(aa.__dict__) #檢視物件所有的屬性 私有屬性亦可被訪問

print(aa._cat__privatename) #私有屬性訪問方法加_類名

#__str__()魔法方法

print(str(aa)) #__str__使物件被print(str())時執行def __str__(self)下的return語句

print(aa) #__str__使物件被print時執行def __str__(self)下的return語句

#__len__()魔法方法

print(len(aa)) #__len__使物件在被len()時執行__len__()下的return語句

#__iter()__魔法方法 迭代器 使物件可以被迭代

for i in aa:

print(i)

#字典的修改、刪除操作

dic =

print(dic)

dic['name'] = 'xiaopazi'

print(dic)

del dic['age']

print(dic)

print(aa['name']) #__getitem__(self, key)使其具備字典獲取的功能

aa['name'] = 'kunkun' #__setitem__(self, key, value)使其具備字典修改的功能

print(aa.__dict__)

'''del aa['name'] #__delitem__(self, key)使其具備字典刪除的功能

print(aa.__dict__)

'''#數**算 +-*/ 魔法方法

#__add__() +

#__sub__() -

#__mul__() *

#__div__() /

#__mod__() %

#__pow__() **

x = 1

y = 2

print(x+y)

aa1 = cat('小耙子')

bb1 = cat('小黃子',20)

print(aa1 + bb1) #__add__(self, other)使類的物件具有相加的功能

cc1 = cat('kunkunzi')

he = aa1 + bb1

print(cc1 + he)

print(aa1 * bb1)

執行結果:

我是乙隻小貓,我的名字叫小困子

這是乙個貓的類

leicat: 55

true

小困子我是乙隻叫小困子的貓

我是乙隻叫小困子的貓101

234小困子

3我是乙隻小貓,我的名字叫小耙子

我是乙隻小貓,我的名字叫小黃子

['小耙子', '小黃子']

我是乙隻小貓,我的名字叫kunkunzi

['小耙子', '小黃子', 'kunkunzi']

我倆是小耙子小黃子

kunkun被刪除了

小耙子被刪除了

小黃子被刪除了

kunkunzi被刪除了

Python魔法方法 基本的魔法方法

new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...

python 魔法方法

魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...

python魔法方法

python魔術方法是特殊方法的暱稱。它是簡單而又強大,為了被python直譯器呼叫而存在的方法。python提供豐富的元物件協議,讓語言的使用者和核心開發者擁有並使用同樣的工具 例子引用 流暢的python 一摞python風格的紙牌 import collections namedtuple用來...