Các tài liệu cho functools.partial nói rằng đó là "tương đương với":thực hiện functools.partial rằng prepends lập luận thêm
def partial(func, *args, **keywords):
def newfunc(*fargs, **fkeywords):
newkeywords = keywords.copy()
newkeywords.update(fkeywords)
return func(*(args + fargs), **newkeywords) # line to change
newfunc.func = func
newfunc.args = args
newfunc.keywords = keywords
return newfunc
Nếu tôi muốn thực hiện một phiên bản đó prepends các đối số bổ sung, có vẻ như như tôi chỉ cần thay đổi dòng được chỉ định.
Có bất kỳ tính năng/gotchas nào khác mà tôi phải lo lắng về việc chỉ sao chép mã này không?
Đã không nghĩ đến việc phân lớp nội trang. – Dave
Điều này là tuyệt vời, nhưng tôi nghĩ rằng nó nên đọc: lớp rpartial (một phần): def __call __ (self, * args, ** kwargs): kw = self.keywords.copy() kw.update (kwargs) return self.func (* (args + self.args), ** kw) – ishmael
@ishmael cảm ơn, đã sửa. – ecatmur