Если вы предпочитаете применять эту операцию функционально, а не с помощью инфиксного оператора (символ **
), вы можете передать базу и экспоненту в качестве аргументов функции pow
:
In [23]: (9**(0.5)) == pow(9, 0.5)
Out[23]: True
Я также увлекаюсь поиском новых применений для этого взлома Infix в Python , хотя это скорее развлечение, чем сверхмощное решение. Но вы могли бы сделать свой собственный персональный символ для этого, выполнив следующее:
class Infix:
def __init__(self, function):
self.function = function
def __ror__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __or__(self, other):
return self.function(other)
def __rlshift__(self, other):
return Infix(lambda x, self=self, other=other: self.function(other, x))
def __rshift__(self, other):
return self.function(other)
def __call__(self, value1, value2):
return self.function(value1, value2)
root_of = Infix(lambda x,y: y**(1.0/x))
print 2 |root_of| 9
3.0