導航:首頁 > 編程語言 > pythonxget

pythonxget

發布時間:2024-09-26 17:04:45

A. python魔術方有哪些

1.__init__
初始化魔術方法
觸發時機:初始化對象時觸發(不是實例化觸發,但是和實例化在一個操作中)
參數:至少有一個self,接收對象
返回值:無
作用:初始化對象的成員
注意:使用該方式初始化的成員都是直接寫入對象當中,類中無法具有

2.__new__
實例化魔術方法
觸發時機: 在實例化對時觸發
參數:至少一個cls 接收當前類
返回值:必須返回一個對象實例
作用:實例化對象
注意:實例化對象是Object類底層實現,其他類繼承了Object的__new__才能夠實現實例化對象。
沒事別碰這個魔術方法,先觸發__new__才會觸發__init__

3.__del__
析構魔術方法
觸發時機:當對象沒有用(沒有任何變數引用)的時候被觸發
參數:一個self 結婚搜對象
返回值:無
作用:使用完對象是回收資源
注意:del不一定會觸發當前方法,只有當前對象沒有任何變數接收時才會觸發

4.__call__
調用對象的魔術方法
觸發時機:將對象當作函數調用時觸發 對象()
參數:至少一個self接收對象,其餘根據調用時參數決定
返回值:根據情況而定
作用:可以將復雜的步驟進行合並操作,減少調用的步驟,方便使用
注意:無

5.__len__
觸發時機:使用len(對象) 的時候觸發
參數:一個參數self
返回值:必須是一個整型
作用:可以設置為檢測對象成員個數,但是也可以進行其他任意操作
注意:返回值必須必須是整數,否則語法報錯,另外該要求是格式要求。

6.__str__
觸發時機:使用print(對象)或者str(對象)的時候觸發
參數:一個self接收對象
返回值:必須是字元串類型
作用:print(對象時)進行操作,得到字元串,通常用於快捷操作
注意:無

7.__repr__
觸發時機:在使用repr(對象)的時候觸發
參數:一個self接收對象
返回值:必須是字元串
作用:將對象轉使用repr化為字元串時使用,也可以用於快捷操作

repr函數和str函數處理字元串只有一個區別:
str的結果 字元串本身 (結果可以被eval執行)
如:x = '無圖言Diao' str() ->無圖言Diao
rerpr的結果 字元串定義結構 (eavl不會執行repr結果)
如:x = '無圖言Diao' repr() ->'無圖言Diao'
備注: 在類中通常情況下__str__和__repr__ 設置相同即可
eval()
函數 將字元串當作python代碼執行
格式:eval(字元串)
返回值:可以有返回值
8.__bool__
觸發時機: 使用bool(對象)的時候觸發
參數:一個self接收對象
返回值:必須是布爾值
作用:根據實際情況決定,可以作為快捷方式使用
注意:僅適合於返回布爾值的操作

9.__format__
觸發時機:使用字元串.format(對象)時候觸發
參數:一個self接收對象,一個參數接收format的{}中的格式,例如:>5
返回值:必須是字元串
作用:設置對象可以作為format的參數,並且自定義對象格式化的規則
注意:無

描述符相關的魔術方法
1.__get__()
觸發時機:在獲取指定描述符操作的成員屬性的值的時候觸發
參數:1描述符對象本身,2描述符描述的屬性所在的對象,描述符描述的對象的類
返回值:必須有,不然無法獲取相應屬性值
注意:僅在描述符中使用

2.__set__()
觸發時機:在設置或者添加指定描述符操作的成員屬性的時候觸發
參數:1描述符對象本身,2描述符描述的屬性所在的對象,3要設置的值
返回值:無
注意:僅在描述符中使用

3.__delete__()
觸發時機:在刪除指定描述符操作的成員屬性的時候觸發
參數:1描述符對象本身,2描述符描述的屬性所在的對象
返回值:無
注意:僅在描述符中使用

與屬性操作相關的魔術方法
1.__getattr__()
觸發時機:獲取不存在的對象成員時觸發
參數:1接收當前對象的self,一個是獲取成員名稱的字元串
返回值:必須有值
作用:為訪問不存在的屬性設置值
注意:getattribute無論何時都會在getattr之前觸發,觸發了getattribute就不會在觸發getattr了

2.__setattr__()
觸發時機:設置對象成員值的時候觸發
參數:1個當前對象的self,一個是要設置的成員名稱字元串,一個是要設置的值
返回值:無 過程操作
作用:接管設置操作,可以在設置前之前進行判斷驗證等行為
注意:在當前方法中無法使用成員=值的方式直接設置成員,否則會無限遞歸,必須藉助object的設置方法來完成

object.__setattr__(參數1,參數2,參數3)

3.__delattr__()
觸發時機:刪除對象成員時觸發
參數:一個當前對象的self
返回值:無
作用:可以在刪除成員時進行驗證。

4.__getattribute__()
觸發時機:使用對象成員時觸發,無論成員是否存在
參數:1個接收當前對象self,一個是獲取的成員的名稱字元串
返回值:必須有
作用:在具有封裝操作(私有化時),為程序開部分訪問許可權使用

5.__dir__()
觸發時機:dir(對象)的時候觸發
參數:1個接收當前對象self
返回值:必須為序列類型(列表,元組,集合等,)
作用:可以自定義成員列表的返回值

運算相關魔術方法(上帝模式)
比較運算相關魔術方法
1.__lt__()
格式:
def __lt__(self,other):
return 數據

特徵:
觸發時機:進行小於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義小於號的行為:x < y 調用 x.lt(y)

2.__le__()
格式:
def __le__(self):
return str

特徵:
觸發時機:進行小於等於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義小於等於號的行為:x <= y 調用 x.le(y)

3.__gt__()
格式:
def __gt__(self):
return str

特徵:
觸發時機:進行大於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義大於號的行為:x > y 調用 x.gt(y)

4.__ge__()
格式:
def __ge__(self):
return str

特徵:
觸發時機:進行大於等於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義大於等於號的行為:x >= y 調用 x.ge(y)

5.__eq__()
格式:
def __eq__(self):
return str

特徵:
觸發時機:進行等於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義大於等於號的行為:x == y 調用 x.eq(y)

6.__ne__()
格式:
def __ne__(self):
return str

特徵:
觸發時機:進行不等於判斷時自動觸發
參數:2個參數第一個是self,第二個判斷的第二個對象
返回值:返回值可以任意類型,推薦布爾值
作用:定義不等號的行為:x != y 調用 x.ne(y)

算術運算相關魔術方法
__add__(self, other) 定義加法的行為:+
__sub__(self, other) 定義減法的行為:-
__mul__(self, other) 定義乘法的行為:
__truediv__(self, other) 定義真除法的行為:/
__floordiv__(self, other) 定義整數除法的行為://
__mod__(self, other) 定義取模演算法的行為:%
__divmod__(self, other) 定義當被 divmod() 調用時的行為
__pow__(self, other[, molo]) 定義當被 power() 調用或 ** 運算時的行為
__lshift__(self, other) 定義按位左移位的行為:<<
__rshift__(self, other) 定義按位右移位的行為:>>
__and__(self, other) 定義按位與操作的行為:&
__xor__(self, other) 定義按位異或操作的行為:^
__or__(self, other) 定義按位或操作的行為:|

反運算相關魔術方法
__radd__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rsub__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rmul__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rtruediv__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rfloordiv__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rmod__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rdivmod__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rpow__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rlshift__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rrshift__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rand__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__rxor__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用
__ror__(self, other) 與上方相同,當左操作數不支持相應的操作時被調用

賦值運算相關魔術方法
__iadd__(self, other) 定義賦值加法的行為:+=
__isub__(self, other) 定義賦值減法的行為:-=
__imul__(self, other) 定義賦值乘法的行為:=
__itruediv__(self, other) 定義賦值真除法的行為:/=
__ifloordiv__(self, other) 定義賦值整數除法的行為://=
__imod__(self, other) 定義賦值取模演算法的行為:%=
__ipow__(self, other[, molo]) 定義賦值冪運算的行為:**=
__ilshift__(self, other) 定義賦值按位左移位的行為:<<=
__irshift__(self, other) 定義賦值按位右移位的行為:>>=
__iand__(self, other) 定義賦值按位與操作的行為:&=
__ixor__(self, other) 定義賦值按位異或操作的行為:^=
__ior__(self, other) 定義賦值按位或操作的行為:|=

一元運算相關魔術方法
__pos__(self) 定義正號的行為:+x
__neg__(self) 定義負號的行為:-x
__abs__(self) 定義當被 abs() 調用時的行為
__invert__(self) 定義按位求反的行為:~x

類型轉換相關魔術方法 JIANG
__complex__(self) 定義當被 complex() 調用時的行為(需要返回恰當的值)
__int__(self) 定義當被 int() 調用時的行為(需要返回恰當的值)
__float__(self) 定義當被 float() 調用時的行為(需要返回恰當的值)
__round__(self[, n]) 定義當被 round() 調用時的行為(需要返回恰當的值)
__index(self)__ 1. 當對象是被應用在切片表達式中時,實現整形強制轉換
2. 如果你定義了一個可能在切片時用到的定製的數值型,你應該定義 index
3. 如果 index 被定義,則 int 也需要被定義,且返回相同的值

上下文管理相關魔術方法
__enter__() 和 __exit__()
enter(self)
1. 定義當使用 with 語句時的初始化行為
2. enter 的返回值被 with 語句的目標或者 as 後的名字綁定

exit(self, exctype, excvalue, traceback)
1. 定義當一個代碼塊被執行或者終止後上下文管理器應該做什麼
2. 一般被用來處理異常,清除工作或者做一些代碼塊執行完畢之後的日常工作

容器類型相關魔術方法
__len__(self) 定義當被 len() 調用時的行為(返回容器中元素的個數)
__getitem__(self, key) 定義獲取容器中指定元素的行為,相當於 self[key]
__setitem__(self, key, value) 定義設置容器中指定元素的行為,相當於 self[key] = value
__delitem__(self, key) 定義刪除容器中指定元素的行為,相當於 del self[key]
__iter__(self) 定義當迭代容器中的元素的行為
__reversed__(self) 定義當被 reversed() 調用時的行為
__contains__(self, item) 定義當使用成員測試運算符(in 或 not in)時的行為

分類: python 面向對象

B. python的內置函數有哪些,都是什麼意思

print-輸出,input-輸入,int-將字元串轉數字(字元串必須是數字),str-將數字轉為字元串,list-將字元串/數字轉為列表,for-有限循環,while-無限循環……………………………………

C. python 如何根據輸入參數調用不同的函數

#Python3.x
deffunc():
c=input("PleaseEnteraChar:")
while(True):
ifc=='a':
func_a()
break;
ifc=='b':
func_b()
break;

func()

D. python函數中,for循環然後return 出來

defget_mm():
l=[]
forxinrange(1,5):
l.append(x)
returnl
print(get_mm())

閱讀全文

與pythonxget相關的資料

熱點內容
c校驗和演算法 瀏覽:545
聚合通支付系統源碼倉庫 瀏覽:744
如何撩相親程序員 瀏覽:474
137埠入侵源碼 瀏覽:941
引用計數演算法 瀏覽:299
cmd查看文件夾隱藏 瀏覽:302
plc高級編程題庫 瀏覽:329
為什麼安卓軟體到蘋果上不能用 瀏覽:348
數控車床g90編程實例 瀏覽:721
學好python要幾個月 瀏覽:198
和平精英玩家邀請程序員 瀏覽:866
本機怎麼通過網頁訪問伺服器 瀏覽:643
東北人的解壓視頻 瀏覽:978
如何學windows編程 瀏覽:410
退出雲伺服器文件夾登陸 瀏覽:691
sqlplus命令不識別怎麼解決 瀏覽:241
雲伺服器如何運行鏡像 瀏覽:546
電腦繞過密碼查看文件夾 瀏覽:671
旅行地圖app在哪裡下載 瀏覽:197
程序員評論自學 瀏覽:125