파이썬 학습노트--클립,장식기

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 함수입니다.
그래서 장식기를 쓸 때, 나는 보통 먼저 되돌아오는 값을 쓴다

좋은 웹페이지 즐겨찾기