python3

python3之閉包、裝飾器、生成器
閉包:
        可以理解爲函數的一種使用方式。
        具體的特性爲:
                         函數中內嵌函數,把內嵌函數的執行結果作爲外層函數的返回值。
                         def count(start=0):
                        counter = [start]
                        def incr():
                                counter[0] += 1
                                return counter[0]
                        return incr
裝飾器:
        裝飾器是在函數調用之上的修飾。
        應用場景:
                在多個函數需要進行同樣的操作時,在不改變源代碼的前提下,可以使用裝飾器
                def set_color(func):
                        def set_red():
                                return '\033[31;1m%s\033[0m' % func()

                        return set_red

                @set_color
                def welcome():
                        return 'welcome to china'

                @set_color
                def say_hi():
                        return 'how are you?'

                if __name__ == '__main__':
                        print(welcome())
                        print(say_hi())
生成器:
        一個函數中間的yield返回的中間值
        yield返回執行結果並不中斷程序執行,return在返回執行結果的同時中斷程序執行
        >>> def azj():
        ...     yield 'hello'
        ...     yield 100
        ...     yield [10, 20]
        ... 
        >>> a = azj()
        >>> for i in a:
        ...     print(i)
        ... 
        hello
        100
        [10, 20]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章