Python實現partial改變方法預設引數

2023-03-19 01:20:41 字數 1462 閱讀 9757

在python的標準庫中,functools庫中有很多對方法有操作的封裝功能,partial objects就是其中之一,他可以實現對方法引數預設值程式設計客棧的修改。本文就以例項**說明這一功能。

下面就看下簡單的應用測試例項。具體**如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#pyt

#partial.py

#authror: orangle程式設計客棧liu

'''functools 中partial可以用來改變一個方法預設引數

1 改變原有預設值引數的預設值

2 給原來沒有預設值的引數增加預設值

'''def foo(a,b=0) :

'''int add'

'''print a + b

#user default argument

foo(1)

#change default argument once

foo(1,1)

#change function's default argument, and you can use the function with new argument

import functools

foo1 = functools.partial(foo, b=5) #change "b" default argument

rxivcawfoo1(1)

foo2 = functools.partial(foo, a=10) #give "a" default argument

foo2()

'''foo2 is a partial object,it only has three read-only attributes

i will list them

'''print foo2.func

print foo2.args

print foo2.keywords

print dir(foo2)

##預設情況下partial物件是沒有 __name_ __doc__ 屬性,使用update_wrapper 從原始方法中新增屬性到partial 物件中

print foo2.__doc__

'''執行結果:

partial(func, *args, **keywords) - new function with partial application

of the given arguments and keywords.

'''functools.update_wrapper(foo2, foo)

print foo2.__doc__

'''修改為foo的文件資訊了

'''這樣如果我們使用一個方法總是需要預設幾個引數的話就可以,先做一個封裝然後不用每次都設定相同的引數了。

本文標題: python實現partial改變方法預設引數

本文地址:

PHP 5 2 中實現partial引數繫結

在閉包不存在的情況下,實現部分引數繫結的一個替代品 首先舉例partial curry def add a,b return a b def add a b def ad a return a b return ad print add 1,2 3 add 1 add a 1 add 2 add a...

Python中partial的使用

parrtial的功能是可以提前向函式傳遞一部分引數,傳遞的原則是按照順序傳入。舉個簡單的例子,假如有以下 from functoolsimport partial def demo1 a,b return a b demo1 p partial demo1,5 r demo1 demo1 p 7 ...

python中partial的使用規則

前天看到了partial的一個新用法,記錄一下。函式宣告如下 functools.partial func args keywords 返回一個可以像函式一樣被呼叫的partial例項,在呼叫時使用args和keywords引數。使用python實現時,類似於 def partial func,ar...

Python學習 partial 偏函式

python 偏函式是通過 functools 模組被使用者呼叫。偏函式 partial 應用 函式在執行時,要帶上所有必要的引數進行呼叫。但是,有時引數可以在函式被呼叫之前提前獲知。這種情況下,一個函式有一個或多個引數預先就能用上,以便函式能用更少的引數進行呼叫。偏函式是將所要承載的函式作為par...

python的partial 用法說明

在functools模組中有一個工具partial 可以用來 凍結 一個函式的引數,並返回 凍結 引數後的新函式。很簡單的解釋,也是官方手冊給的示例。對於int 函式,它可以將給定的數值轉換成十進位制整數,轉換時可以指定以幾進位制的方式解析給定的數。例如 以10進位制解析123,並轉換成10進位制整...