Discuss / Python / 偏函数对log()无效

偏函数对log()无效

Topic source

以下是试图导出以3为底的对数的尝试。

from functools import partial
from math import log
l3 = partial(log, base=3)
ll3 = partial(log, 3)
# print (l3(3), l3(9))
print (ll3(3), ll3(9))

值得一提的是,log的说明 (function) log: (x: float, base: float = e) 似乎在提示其第二个也是最后一个参数名叫base。

但是被注释掉的这行,运行时报错:

TypeError: log() takes no keyword arguments

而下面那一行,不好意思,是固定了真数为3的“对数”,代入的实参是底数。

半解决。只能不去碰矢山,哪怕原地tp:

def mylog(x, base): return log(x, base)
l3 = partial(mylog, base=3)
print (l3(3), l3(9))

  • 1

Reply