它是指對函式執行過程,做一些擴充套件,甚至可以更改本身函式的執行,它就是在不改變原始碼的情況下,給它新增新的功能
python提供的內建裝飾器有?
@classmethod修飾類函式,可以由物件和類呼叫,在類函式中,有乙個**引數,如果使用類函式執行,**引數指這個類。如果使用物件.類函式執行,**函式指物件的型別。它只想讓類來呼叫
@staticmethod修飾靜態函式,靜態函式沒有任何**引數,可以由物件和類呼叫
@property在函式前面加這個裝飾器,那麼這個函式可以當成屬性類用
訪問者不需要關心迭代器內部的結構,僅需通過next()方法不斷去取下乙個內容,不能隨機訪問集合中的某個值,只能從頭到尾依次訪 問,訪問到一半不能往後退,便於迴圈比較大的資料集合,節省記憶體
迭代器有兩種型別:
1.集合資料型別:列表,字典,元組,集合,字串
2.generator:包括生成器和帶有yield的生成函式
乙個函式在呼叫時返回乙個迭代器,那這個函式就叫做生成器,如果函式中包含yield語法,那這個函式就會變成生成器,它是一遍迴圈一般計算的機制。
生成器的特點:
1.節約記憶體
2.迭代到下一次的呼叫時,所使用的引數都是第一次所保留下來的,即是說,在整個所有函式呼叫的引數都是第一次所呼叫時保留的,而不是新建立的。
裝飾器,生成器,迭代器
裝飾器 import time def show time func def inner x start time time.time func x end time time.time print end time start time return inner show time def add...
迭代器 生成器 裝飾器
1.迭代器 1 定義 同時滿足 iter 方法和next 方法的物件就是迭代器。3 型別 可迭代物件通過iter 轉為迭代器 生成器是一種特殊的迭代器。2.生成器 1 定義 生成器是迭代器的一種,包括含有yield關鍵字函式和生成器表示式。2 用法 所有函式呼叫的引數都是第一次呼叫時保留的,而不是新...
生成器 迭代器 裝飾器
迭代器表面上看是乙個資料流物件或者容器,當使用其中的資料時,每次從資料流中取出乙個資料,直到資料被取完,而且資料不會被重複使用。從 的角度來看,迭代器是實現了迭代器協議方法的物件和類。迭代器協議方法主要是兩個 iter 該方法返回物件本身,它是for語句使用迭代器的要求 next 方法用於返回容器中...