1. 程式人生 > >談談python的元類 metaclass

談談python的元類 metaclass

思考三個問題。

  1. 元類是什麼?

元類就是可以用來建立類的類。一般我們要建立一個類,都是使用class 關鍵字實現這個類。元類是可以動態的建立類,而不是一開始就定義好類的屬性和函式,而是在執行過程中建立類。

  1. 元類做了那些事情?

元類主要做了三件事:攔截類的建立,修改類的定義,返回修改後的類。

  1. 元類可以用來做什麼

元類的主要使用場景是建立一個API。不過python大師Tim Peters說過:元類是一種99%的人都不需要關心的深度魔法。當你在好奇你是否需要它,通常這就說明你並不需要(確切需要它的人不需要找任何原因解析為什麼需要)。