簡體   English   中英

Python:args的某些功能-> * args(類似於functools中的功能)

[英]Python: some function for args -> *args (similar like those in functools)

我有以下實現:

def vecAdd(v1, v2): return tuple(map(add, izip(v1,v2)))
def vecMul(v1, f): return tuple(map(mul, izip(v1,repeat(f))))

那些沒有用,因為add (和mul )的調用像add((x,y)) ,即它只得到一個參數。

是否有一些基本上可以完成以下功能的功能?

def funccaller_with_exposed_args(func):
    return lambda args: func(*args)

在這種情況下,這可能是過大的和過度設計的,但是總的來說,如果您可以將一個完整的繁重循環放入純C代碼中,那么這對於性能而言是非常重要的。

您可以使用itertools.starmapitertools.imap進行此操作。 imap類似於starmap只是它先starmap參數。 因此,您可以只使用imap來代替自己調用izip

import itertools as it
def vecAdd(v1, v2): return tuple(it.imap(add, v1, v2))
def vecMul(v1, f): return tuple(it.imap(mul, v1, it.repeat(f)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM