파이썬 학습노트--클립,장식기
2175 단어 나의 학습 노트
Pyhton 학습노트--클립,장식기
본문 은 자신 을 위해 필기 를 하는데, 만약 잘못 이 있으면 바로잡고, 함께 공부하며, 함께 진보하는 것 을 환영한다
패키징:
패키지를 닫는 것은 사실 하나의 함수를 되돌려 주는 것이다
예를 들어 x*x를 구하는 함수:
def qiushu(x):
def fun():
return x*x
return fun
f=qiushu(2)
print(f())
위의 코드,qiushu 함수는fun 함수로 되돌아옵니다. 그러면 계산 절차는 실행되지 않습니다. 호출해야 실행됩니다. 위의 코드는 되돌아오는 함수를 f에게 주고 f()를 호출해야 x*x를 계산합니다.
되돌아오는 함수는 외부 함수의 변수를 인용할 수 있다. 예를 들어 상기 코드가 변수 x를 인용하고 되돌아오는 함수는 즉각 집행되지 않기 때문에 인용된 변수가 바뀌면 되돌아오는 함수의 결과도 바뀔 수 있으니 주의해야 한다.
장식기:
장식기는 사실 하나의 함수를 받은 다음에 함수를 실행하기 전이나 그 다음에 코드를 실행하는 것이다
예컨대
import functools
def log(func):
def decorater():
print("%s begin"%func.__name__)
return func()
return decorater
@log
def now():
print("2016-8-15")
now()
이 함수는 now를 실행하기 전에 "함수 이름 begin"을 출력할 수 있습니다
실행 과정은 -->log(now()와 유사하다
장식기에 관해서 처음에는 저도 잘 몰랐는데 나중에 되돌아오는 값만 주목하면 된다는 것을 알게 되었습니다. 예를 들어log 함수는decorater 함수를 되돌려주고decorater 함수는func를 되돌려주고func 함수는now 함수입니다.
그래서 장식기를 쓸 때, 나는 보통 먼저 되돌아오는 값을 쓴다