1.ArithmeticError | 2.AssertionError | 3.AttributeError | 4.BaseException | 5.BlockingIOError |
6.BrokenPipeError | 7.BufferError | 8.BytesWarning | 9.ChildProcessError | 10.ConnectionAbortedError |
11.ConnectionError | 12.ConnectionRefusedError | 13.ConnectionResetError | 14.DeprecationWarning | 15.EOFError |
16.Ellipsis | 17.EnvironmentError | 18.Exception | 19.False | 20.FileExistsError |
21.FileNotFoundError | 22.FloatingPointError | 23.FutureWarning | 24.GeneratorExit | 25.IOError |
26.ImportError | 27.ImportWarning | 28.IndentationError | 29.IndexError | 30.InterruptedError |
31.IsADirectoryError | 32.KeyError | 33.KeyboardInterrupt | 34.LookupError | 35.MemoryError |
36.ModuleNotFoundError | 37.NameError | 38.None | 39.NotADirectoryError | 40.NotImplemented |
41.NotImplementedError | 42.OSError | 43.OverflowError | 44.PendingDeprecationWarning | 45.PermissionError |
46.ProcessLookupError | 47.RecursionError | 48.ReferenceError | 49.ResourceWarning | 50.RuntimeError |
51.RuntimeWarning | 52.StopAsyncIteration | 53.StopIteration | 54.SyntaxError | 55.SyntaxWarning |
56.SystemError | 57.SystemExit | 58.TabError | 59.TimeoutError | 60.True |
61.TypeError | 62.UnboundLocalError | 63.UnicodeDecodeError | 64.UnicodeEncodeError | 65.UnicodeError |
66.UnicodeTranslateError | 67.UnicodeWarning | 68.UserWarning | 69.ValueError | 70.Warning |
71.WindowsError | 72.ZeroDivisionError | 73.__build_class__ | 74.__debug__ | 75.__doc__ |
76.__import__ | 77.__loader__ | 78.__name__ | 79.__package__ | 80.__spec__ |
81.abs | 82.all | 83.any | 84.ascii | 85.bin |
86.bool | 87.breakpoint | 88.bytearray | 89.bytes | 90.callable |
91.chr | 92.classmethod |
93.compile | 94.complex | 95.copyright |
96.credits | 97.delattr | 98.dict | 99.dir | 100.divmod |
101.enumerate | 102.eval | 103.exec | 104.execfile | 105.exit |
106.filter | 107.float | 108.format | 109.frozenset | 110.getattr |
111.globals | 112.hasattr | 113.hash | 114help | 115.hex |
116.id | 117.input | 118.int | 119.isinstance | 120.issubclass |
121.iter | 122.len | 123.license | 124.list | 125.locals |
126.map | 127.max | 128.memoryview | 129.min | 130.next |
131.object | 132.oct | 133.open | 134.ord | 135.pow |
136.print | 137.property |
138.quit | 139.range | 140.repr |
141.reversed | 142.round | 143.runfile | 144.set | 145.setattr |
146.slice | 147.sorted | 148.staticmethod |
149.str | 150.sum |
151.super |
152.tuple | 153.type | 154.vars | 155.zip |
修飾符:類方法 @classmethod | 無(wú)需顯式地傳遞類名做實(shí)參
作為一家“創(chuàng)意+整合+營(yíng)銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁(yè)制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營(yíng)銷運(yùn)營(yíng)等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營(yíng)模式與有效的網(wǎng)絡(luò)營(yíng)銷方法,創(chuàng)造更大的價(jià)值。
class Computer:
# 類屬性modules
__modules = {"cpu":"Intel", "內(nèi)存":"鎂光", "硬盤":"970-Pro"}
# 設(shè)定修飾符@類方法 | 類的函數(shù)或者叫類的方法output_modules
@classmethod
def output_modules(cls):
for (i,s) in cls.__modules.items():
print(i, ':', s)
# 調(diào)用類的方法output_modules,無(wú)需顯式地傳遞類名做實(shí)參
Computer.output_modules()
#-------------------------------------------------------------
# 輸出結(jié)果:
# cpu : Intel
# 內(nèi)存 : 鎂光
# 硬盤 : 970-Pro
也可被其他類直接進(jìn)行調(diào)用(感覺有點(diǎn)全局的意思), 看例子代碼如下:
class Computer:
# 類屬性modules
__modules = {"cpu":"Intel", "內(nèi)存":"鎂光", "硬盤":"970-Pro"}
# 設(shè)定修飾符@類方法 | 類的函數(shù)或者叫類的方法output_modules
@classmethod
def output_modules(cls):
for (i,s) in cls.__modules.items():
print(i, ':', s)
class OtherClass:
def __init__(self):
pass
def _test_OtherClass(self):
# 調(diào)用類的方法output_modules,無(wú)需顯式地傳遞類名做實(shí)參
Computer.output_modules()
aaaa = OtherClass()
aaaa._test_OtherClass()
#-------------------------------------------------------------
# 輸出結(jié)果:
# cpu : Intel
# 內(nèi)存 : 鎂光
# 硬盤 : 970-Pro
此修飾符可賦值給變量, 語(yǔ)法為:
x = property(getx, setx, delx)
- 如果是以此種方法的話, 函數(shù)名或者說(shuō)是方法名可以不相同
如果是以裝飾器形式使用的話, 函數(shù)名或者說(shuō)是方法名必須相同, 例子代碼如下:
class Computer:
# 類屬性 __modules
__modules = {"cpu":"Intel", "內(nèi)存":"鎂光", "硬盤":"970-Pro"}
def __init__(self):
pass
# 獲取字典的key
@property
def modules_property(self):
# 字典 __modules的key 取出來(lái)變成列表
__loops = [i for i in self.__modules]
for ii in range(len(self.__modules)):
print(__loops[ii], ':', self.__modules[__loops[ii]])
# 給字典新增數(shù)據(jù)
@modules_property.setter
def modules_property(self, key_value):
self.__modules[key_value[0]] = key_value[1]
# 刪除字典中內(nèi)容, 這里沒辦法通過(guò)@modules_property.deleter以達(dá)到刪除字典中某個(gè)鍵值
# 所以換成了 靜態(tài)方法 來(lái)刪除鍵值
@staticmethod
def del_modules_property(__del, key):
try:
# dels.__modules.pop(key, 'Error, 刪除的內(nèi)容不存在!')
__del.__modules.pop(key)
except KeyError:
print(f'Error, 刪除的鍵: {key} 不存在!')# 這個(gè)引用變量 應(yīng)該在v3.6版本以下不兼容...
# print('Error, 刪除的鍵: {keys} 不存在!'.format(keys=key))
# 實(shí)例化類
aaaa = Computer()
print('打印原有字典內(nèi)容')
aaaa.modules_property
print('----------分隔符-----------')
print('打印新增后字典內(nèi)容')
# 通過(guò)@modules_property.setter, 給字典新增數(shù)據(jù)
aaaa.modules_property = ('機(jī)箱', '海盜船')
# 通過(guò)@property,其實(shí)也是@getattr, 取出字典中的鍵值內(nèi)容
aaaa.modules_property
print('----------分隔符-----------')
print('打印刪除后字典內(nèi)容')
# 通過(guò)靜態(tài)方法@staticmethod, 刪除字典中某個(gè)元素,或者說(shuō)成刪除字典中某個(gè)鍵值內(nèi)容
Computer.del_modules_property(Computer, 'cpu')
# 通過(guò)@property, 再次打印字典內(nèi)容,看下是否正常刪除了
aaaa.modules_property
# -------------------------------------------------------------
# 打印原有字典內(nèi)容
# cpu : Intel
# 內(nèi)存 : 鎂光
# 硬盤 : 970-Pro
# ----------分隔符-----------
# 打印新增后字典內(nèi)容
# cpu : Intel
# 內(nèi)存 : 鎂光
# 硬盤 : 970-Pro
# 機(jī)箱 : 海盜船
# ----------分隔符-----------
# 打印刪除后字典內(nèi)容
# 內(nèi)存 : 鎂光
# 硬盤 : 970-Pro
# 機(jī)箱 : 海盜船
2022-06-01 推翻例子中"
刪除字典中內(nèi)容, 這里沒辦法通過(guò)@modules_property.deleter以達(dá)到刪除字典中某個(gè)鍵值"這句話:
class Computer:
def __init__(self) -> None:
self.modules = {"cpu":"intel", "內(nèi)存":"鎂光", "硬盤":"970-pro"}
self.moduleslist = []
@property
def modulesGetSetDel(self):
self.moduleslist.clear()
get_loops = [i for i in self.modules]
for ii in range(len(self.modules)):
self.moduleslist.append(get_loops[ii] + ": " + self.modules[get_loops[ii]])
return self.moduleslist
@modulesGetSetDel.setter
def modulesGetSetDel(self, key_value):
self.get_key_value_loops = [i for i in key_value]
for i in range(len(self.get_key_value_loops)):
self.modules[self.get_key_value_loops[i]] = key_value[self.get_key_value_loops[i]]
@modulesGetSetDel.deleter
def modulesGetSetDel(self):
for i in range(len(self.get_key_value_loops)):
del self.modules[self.get_key_value_loops[i]]
aa = Computer()
# #打印原始字典
print("原始字典數(shù)據(jù): ", aa.modulesGetSetDel)
# #打印新增的字典
aa.modulesGetSetDel = {"機(jī)箱":"海盜船", "測(cè)試1":"測(cè)試11"}
print("新增字典數(shù)據(jù): ", aa.modulesGetSetDel)
# 打印刪除后的字典數(shù)據(jù)
del aa.modulesGetSetDel
print("刪后字典數(shù)據(jù): ", aa.modulesGetSetDel)
# -------------------------------------------------------------
# 原始字典數(shù)據(jù): ['cpu: intel', '內(nèi)存: 鎂光', '硬盤: 970-pro']
# 新增字典數(shù)據(jù): ['cpu: intel', '內(nèi)存: 鎂光', '硬盤: 970-pro', '機(jī)箱: 海盜船', '測(cè)試1: 測(cè)試11']
# 刪后字典數(shù)據(jù): ['cpu: intel', '內(nèi)存: 鎂光', '硬盤: 970-pro']
# 修飾符:靜態(tài)方法 @staticmethod | 必須顯式地傳遞類名做實(shí)參
class Computer:
# 類屬性modules
__modules = {"cpu":"Intel", "內(nèi)存":"鎂光", "硬盤":"970-Pro"}
# 在靜態(tài)方法search_module中定義形參var,準(zhǔn)備傳遞類:Computer
# 調(diào)用時(shí)必須顯性地傳遞類名,才能實(shí)現(xiàn)類方法一樣的效果
# 設(shè)定修飾符@靜態(tài)方法 | 類的函數(shù)或者叫類的方法search_module
@staticmethod
def search_module(var, module_value):
print(var.__modules[module_value])
Computer.search_module(Computer, "cpu")
Computer.search_module(Computer, "內(nèi)存")
Computer.search_module(Computer, "硬盤")
#-------------------------------------------------------------
# 輸出結(jié)果:
# Intel
# 鎂光
# 970-Pro
也可被其他類直接進(jìn)行調(diào)用(有點(diǎn)全局的意思.....), 看例子代碼如下:
class Computer:
# 類屬性modules
__modules = {"cpu":"Intel", "內(nèi)存":"鎂光", "硬盤":"970-Pro"}
# 在靜態(tài)方法search_module中定義形參var,準(zhǔn)備傳遞類:Computer
# 調(diào)用時(shí)必須顯性地傳遞類名,才能實(shí)現(xiàn)類方法一樣的效果
# 設(shè)定修飾符@靜態(tài)方法 | 類的函數(shù)或者叫類的方法search_module
@staticmethod
def search_module(var, module_value):
print(var.__modules[module_value])
class OtherClass:
def __init__(self):
pass
def _test_OtherClass(self):
# 調(diào)用類的靜態(tài)方法search_module,必須顯式地傳遞類名做實(shí)參
Computer.search_module(Computer, "cpu")
Computer.search_module(Computer, "內(nèi)存")
Computer.search_module(Computer, "硬盤")
aaaa = OtherClass()
aaaa._test_OtherClass()
#-------------------------------------------------------------
# 輸出結(jié)果:
# Intel
# 鎂光
# 970-Pro
super函數(shù)不需要明確的給出任何 "被調(diào)用類" 的名稱, 學(xué)習(xí)中覺得 子類-父類-超類 叫起來(lái)很繞, 就自認(rèn)為叫成 "被調(diào)用類" 方便自己理解
- 假設(shè)定義了三個(gè)類: A B C
- 類A 繼承 類B, 類A 是 類B 的子類 | 類B 是 類A 的父類(被調(diào)用類)
- 類B 繼承 類C, 類B 是 類C 的子類 | 類C 是 類B 的父類(被調(diào)用類)
- 類A 間接繼承 類C , 類C 是 類A 的超類(被調(diào)用類)
- 例子待定
當(dāng)前文章:Python | 內(nèi)置函數(shù)(BIF)
網(wǎng)站路徑:http://chinadenli.net/article10/dsogpdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、定制開發(fā)、面包屑導(dǎo)航、品牌網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)