Я новичок в python и пытаюсь понять функции и функции языков. Когда я запускаю приведенный ниже код, я получаю сообщение об ошибке. Msg «wrap() принимает 0 позиционных аргументов, но 2 даны«.Почему возникает ошибка msg, когда функция, принимающая n параметров, передается подфункции функции декоратора, которая содержит 0 аргументов
class dec:
def decorator_function(orig):
def wrap():
print('hi')
return orig
return wrap
@decorator_function
def display_inf(name, age):
print('dispInf ran with args ({},{})'.format(name,age))
display_inf('John',35)
Я понимаю, что сообщ ошибка и если изменить функцию обертку, чтобы включить 2 параметра, как показано ниже, я бы не получить эту Сообщ. Однако то, что я не понимаю, почему питон бросает ошибку. Функция display_inf передается функции decorator_function, как и ожидалось, однако, что касается функции обертки, все, что она делает, это печать привет. Он даже не использует функцию, поэтому почему я все еще получаю эту ошибку, если я ее не использую. Что происходит за сценой, которая вызывает ошибку.
def decorator_function(orig):
def wrap(name, age):
print('hi')
return orig
return wrap
Благодарим вас за подробное объяснение. Теперь все имеет смысл :-) – Sharingan