본질은 그렇게 어렵지 않음. @(foo) def bar() 라고 하면 실은 foo라는 함수는 bar 라는 함수를 파라미터로 받는거지, 대충 bar라는 함수를 foo라는 함수로 wrap해서 새로운 함수를 만드는거임.
프갤러 1(210.90)2024-05-10 23:12
답글
그래도 이해 안 되거덩요... 그냥 시간이 해결해 주겄지요 뭐
익명(210.101)2024-05-10 23:21
예를 들어 어떤 함수가 몇번 호출되었는지 궁금한거임(혹은 호출될떄 마다 로그를 남긴다든지) 그럼 원래 함수를 대체할 새로운 함수를 만들면서 새로운 함수안에 원래 함수의 주소와 cnt 변수 두개를 가지게 하고 원래 함수를 호출할일이 있으면 새로운 함수를 대신 호출하는거지
새로운 함수 호출 -> 새로운 함수 안의 원래 함수의 주소 호출 + cnt++실행
이제 cnt 변수를 읽으면 원래함수가 몇번 호출됐는지 알수 있음
코테할꺼면 필요없고, 파이썬으로 코드 짤꺼면 중요함.
본질은 그렇게 어렵지 않음. @(foo) def bar() 라고 하면 실은 foo라는 함수는 bar 라는 함수를 파라미터로 받는거지, 대충 bar라는 함수를 foo라는 함수로 wrap해서 새로운 함수를 만드는거임.
그래도 이해 안 되거덩요... 그냥 시간이 해결해 주겄지요 뭐
예를 들어 어떤 함수가 몇번 호출되었는지 궁금한거임(혹은 호출될떄 마다 로그를 남긴다든지) 그럼 원래 함수를 대체할 새로운 함수를 만들면서 새로운 함수안에 원래 함수의 주소와 cnt 변수 두개를 가지게 하고 원래 함수를 호출할일이 있으면 새로운 함수를 대신 호출하는거지 새로운 함수 호출 -> 새로운 함수 안의 원래 함수의 주소 호출 + cnt++실행 이제 cnt 변수를 읽으면 원래함수가 몇번 호출됐는지 알수 있음