@decorator2

고준영·2021년 8월 25일
0

Python🐍

목록 보기
7/7
post-thumbnail

1. wrapper?

영어를 잘 못해서 뭔지 한참 찾아봤다. 파이썬에서 데코레이터를 선언 할 때 매번 쓰는 함수인데, 함수의 이름을 무조건 wrapper로 정해야 한다고 생각했는데, 그게 아니었다..!
wrapper : 포장지, 싸개
하... 매번 랩핑해라 랩핑해라 하면서 저 단어의 뜻을 몰랐다니...
함수의 이름을 wrapper로 사용하는 이유는 단순히 해당 기능이 다른 함수를 실행하기 전에 포장하는 기능이기 때문이었다!!

2. func -> obj

파이썬에서 함수는 func로 불러와야 하는 것이 아니라 객체 형태로 받아들여지게 된다.
따라서 함수를 출력하게 되면 객체의 주소값이 나오는 것을 확인 할 수 있으며,

위의 코드를 보게 되면 f2라는 함수에서 f를 인자로 받고 있고, f를 함수로 실행 할 수 있다.
어렵게 설명하고 있는것 같은데, f2 에 인자로 들어오고 있는 f는 객체이고 이러한 객체를 함수로 실행하는 것이 f()인 것이다.
따라서 파이썬에서는 함수를 객체 형태로

3. use paramiter


해당 함수는 westagram을 만드는 과정속에서 Framework의 기능을 사용하지 않고 사용자의 로그인이 되어 있을때(인증 된 사용자 확인)를 먼저 검사하는 보조, 포장지 함수를 만든 것이다.

1) wrapper -> func 파라미터 전달

  • wrapper에 파라미터 전달
  • 해당 파라미터에 대한 값을 사용 및 저장 되어 있는 값 변경
  • 내가 포장지 함수 이후에 실행 할 함수에 파라미터 전달
  • 내가 사용 할 함수에서 전달받은 파라미터 사용하기

4. Conclusion

decorator을 공부하면서 파이썬에서 함수를 어떻게 불러오고 어떻게 바라보는지 알게 되었다.
사실 에러코드를 보면 이해 못하면 그냥 넘어가고는 했는데, 에러코드에 주소값이 나오곤 했다.
함수는 객체 형태로 호출이 가능하고, 객체로 바라보아 진다!!
또한 데코레이터 함수를 만듦에 있어 남들이 만들어 놓은 함수를 조금 변형하여 사용하고는 했는데, 이렇게 정리하고서 데코레이터를 조금 더 내가 원하는 방향으로 사용 할 수 있을것 같다.
내가 사용하는것은 내가 주인이 되어야 한다!! 지배당하지 말고 내가 지배해서 효율적으로 사용하자
🔥느리더라도 정확하게 알고가자
위코드 4주차 수요일 21.08.25

profile
코드짜는귤🍊 풀스택을 지향하는 주니어 개발자 입니다🧡

0개의 댓글