Я нашел одно использование для функции pow
через оператор **
. Во-первых, **
- это действительно повышение до степени и применение дополнительного модуля , как в a**b % c
. Но если вы включите %
, его значение не может быть None
. 2**3 % None
это ошибка. pow
действительно pow(x, y, z=None)
.
Итак, если я хочу повысить производное значение до степени, я мог бы использовать оператор
>>> def powerizer(db, index, modulus=None):
... x, y = db.get(index)
... return x**y % modulus
...
>>> db = {"foo":[9,3]}
>>> powerizer(db, "foo", 10)
9
Но он не работает по умолчанию None
модуль.
>>> powerizer(db, "foo")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in powerizer
TypeError: unsupported operand type(s) for %: 'int' and 'NoneType'
pow
функция спасения
>>> def powerizer(db, index, modulus=None):
... x, y = db.get(index)
... return pow(x, y, modulus)
...
>>> powerizer(db, "foo", 10)
9
>>> powerizer(db, "foo")
729