如何查看Python functools.partial對象內(nèi)部封裝的原始函數(shù)?

如何查看Python functools.partial對象內(nèi)部封裝的原始函數(shù)?

探秘python functools.partial對象:如何查看其內(nèi)部原始函數(shù)?

在Python中,使用functools.partial創(chuàng)建部分應(yīng)用函數(shù)后,我們常常想知道它內(nèi)部究竟保存了什么信息,特別是原始函數(shù)。本文將詳細(xì)講解如何查看functools.partial對象內(nèi)部的原始函數(shù)。

我們先來看一個(gè)例子,通過functools.partial將multiply函數(shù)的部分參數(shù)固定,生成一個(gè)新的可調(diào)用對象partial_function。雖然type(partial_function)能確認(rèn)其類型為functools.partial,但并不能直接顯示其原始函數(shù)。

那么,如何查看partial_function的原始函數(shù)呢?答案是訪問其func屬性。

立即學(xué)習(xí)Python免費(fèi)學(xué)習(xí)筆記(深入)”;

functools.partial對象具有三個(gè)只讀屬性:func、args和keywords。其中,func屬性存儲了被修飾的原始可調(diào)用對象(函數(shù)或其他可調(diào)用對象);args屬性存儲預(yù)設(shè)的位置參數(shù);keywords屬性存儲預(yù)設(shè)的關(guān)鍵字參數(shù)。

因此,要查看partial_function的原始函數(shù),只需訪問partial_function.func即可。這將直接返回原始的multiply函數(shù)。

以下代碼示例:

import functools  def multiply(x, y):     return x * y  partial_function = functools.partial(multiply, y=2)  print(partial_function.func)  # 輸出:<function multiply at 0x...> (地址會因運(yùn)行環(huán)境而異)

print(partial_function.func)將打印multiply函數(shù)的引用,清晰地顯示了partial_function所修飾的函數(shù),從而讓我們了解functools.partial對象內(nèi)部結(jié)構(gòu)以及其封裝的原始函數(shù)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享