python item函式 Python魔法函式

2021-10-11 21:55:06 字數 2152 閱讀 6416

1.什麼是魔法函式魔法函式即python類中以__(雙下劃線)開頭,以__(雙下劃線)結尾的函式,python提供的函式,可以讓我們隨意定義類的特性

示例:class company(object):

def __init__(self, employee_list):

self.employee = employee_list

def __getitem__(self, item):

return self.employee[item]

company = company(["tom", "jerry", "bob"])

# 沒有__getitem__時,通過這種方式遍歷company類中的employee

for em in company.employee:

print(em)

# 自定義__getitem__後,company變為可迭代物件

for em in company:

print(em)**中的__init__、__getitem__即為魔法函式

2.python的資料模型以及資料模型對python的影響魔法函式本身是python的資料模型,魔法函式是網路流行的叫法

以__len__為例說明資料模型(魔法函式)對python的影響class company(object):

def __init__(self, employee_list):

self.employee = employee_list

def __getitem__(self, item):

return self.employee[item]

def __len__(self):

return len(self.employee)

company = company(["tom", "jerry", "bob"])

# 不定義__len__是無法使用len()的

print(len(company))

3.python魔法函式一覽(個別說明)

3.1非數**算

字串表示__repr__、__str____str__:對物件進行字串格式化class company(object):

def __init__(self, employee_list):

self.employee = employee_list

company = company(["tom", "jerry", "bob"])

print(company) # 在python直譯器中會隱含呼叫str,即print(str(company))此時輸出:<__main__.company object at>

驗證直譯器隱含呼叫strclass company(object):

def __init__(self, employee_list):

self.employee = employee_list

def __str__(self):

return ','.join(self.employee)

company = company(["tom", "jerry", "bob"])

print(company)輸出:tom,jerry,bob__repr__:開發模式才會用到class company(object):

def __init__(self, employee_list):

self.employee = employee_list

company = company(["tom", "jerry", "bob"])

company # 在python直譯器中會隱含呼叫repr,即repr(company),在python內部為company.__repr__()此時輸出:<__main__.company at>

驗證直譯器隱含呼叫reprclass company(object):

def __init__(self, employee_list):

self.employee = employee_list

def __repr__(self):

return ','.join(self.employee)

company = company(["tom", "jerry", "bob"])

company輸出:tom,jerry,bob

3.2數**算pass

ElasticSearch查詢方法(python)

es.search index my index doc type test type 或者 body es.search index my index doc type test type body body term body 查詢name python 的所有資料 es.search inde...

robot framework自定義python庫

自定義python庫的好處 robot framework填表式,將python的靈活性弄沒了,但是不要擔心,rf早就想到了解決辦法,就是擴充自己的庫.1.在python應用程式包目錄下建立乙個新包 d python27 lib site packages newlibrary 這裡注意資料夾new...

itemcf的hadoop實現優化 Python

原始資料如下 u1 a,d,b,c u2 a,a,c u3 b,d u4 a,d,c u5 a,b,c 計算公式使用 sim u i u j u i u j 其中 u i u j u i u j u i u j 原始的hadoop實現需要5輪mr,優化後只需要兩輪就可以完成。之前的輪數過多,主要在於...