Pow внутри функции Python

Я знаю, что могу использовать num ** pow в качестве альтернативы, но на будущее я хочу понять, почему следующий код не работает:

def math(num, pow):
    return pow(int(num), int(pow))
    # the return keyword returns the result
    pass


print(math(2, 4))

person ABC    schedule 06.03.2020    source источник
comment
почему ваша переменная называется так же, как и встроенная функция?   -  person gold_cy    schedule 06.03.2020
comment
Что именно вы имеете в виду, когда пишете, что не работает?   -  person ekstroem    schedule 06.03.2020


Ответы (2)


Вы переопределяете имя символа.
pow в вашей функции math — это переменная, передаваемая в качестве аргумента, а не функция.

Тогда math — это имя модуля, его не следует переопределять; вызвать функцию другим способом

person Marco Zamboni    schedule 06.03.2020

вы затеняете встроенную функцию pow локальной переменной pow, вы можете видеть, что у вас есть аргумент функции pow

ты можешь использовать:

__builtin__.pow(int(num), int(pow))
person kederrac    schedule 06.03.2020