functools.partial için dokümantasyon o "kabaca eşdeğer" olduğunu söylüyor Sanki belirtilen çizgiyi değiştirmek zorundayım. Sadece bu kodu kopyalayarak içinde endişe gereken başka özellikler/FRİKİKLERİNDENuygulayan functools.partial
var mı?
functools.partial için dokümantasyon o "kabaca eşdeğer" olduğunu söylüyor Sanki belirtilen çizgiyi değiştirmek zorundayım. Sadece bu kodu kopyalayarak içinde endişe gereken başka özellikler/FRİKİKLERİNDENuygulayan functools.partial
var mı?
_functoolsmodule.c
kaynak koduna baktığımda, endişelenecek çok şey olduğunu düşünmüyorum.
partial
ait modül uygulaması dekapaj ve repr
kolları, ancak belgelerde gibi çalışır gibi her şey çok muhtemelen o C uygulanan nedeni sadece verimlilik içindir görünüyor. Ayrıca, bir işlev kapanması olmaktan ziyade bir tür olduğu gerçeği de vardır. Bununla birlikte, dokümantasyon örneğinde, func
, args
ve keywords
'un tamamen kozmetik olduğuna dikkat edin; gerçek functools.partial
örnekleriyle olduğu gibi geçersiz kılmıyorlar. Bir alternatif functools.partial
alt sınıfı olacaktır:
class rpartial(partial):
def __call__(self, *args, **kwargs):
kw = self.keywords.copy()
kw.update(kwargs)
return self.func(*(args + self.args), **kwargs)
Bir sıkan Kısmi atama, aşağıdaki örnekte olduğu gibi keyfi argümanları ele şekli şöyledir:
def f(a,b, *args):
pass
Şimdi kısmen argümanlar 1 ve 2'ye f
geçerlidir:
g = partial(f, 1, 2)
nedir g
b
parametresinin değeri nedir? 1 mi, yoksa hala bir değer mi bekliyor? Bu konuda a
'un değeri nedir? Başka bir deyişle, sağlanan argümanların kaçının varsa, ek argümanlar olarak ele alınması gerekir.
Bu iyi bir açıklama, ama) ('g anlamına synatax ilan olur == f (1,2); g (x) == f (x, 1,2); g (x, y) == f (x, y, 1,2) 'vb. Bu garip olabilir, ancak sistematiktir. – Dave
Yerleşik alt sınıfları düşünmemiştim. sınıf rpartial (kısmi): – Dave
Bu harika ama ben okumak gerektiğini düşünüyorum def __call __ (self, * args ** kwargs): kw = self.keywords.copy() kw.update (kwargs) self.func (* (prmtr + self.args), ** kw) – ishmael
@ishmael sayesinde, sabit geri döner. – ecatmur