【python】函數式編程

來源:互聯網
上載者:User

標籤:裝飾器   技術   AC   code   否則   .com   應該   init   class   

No1:

函數式編程:即函數可以作為參數傳遞,也可以作為傳回值

 No2:

map()函數接收兩個參數,一個是函數,一個是Iterablemap將傳入的函數依次作用到序列的每個元素,並把結果作為新的Iterator返回

No3:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

No4:

排序

No5:

函數作為傳回值,每個傳回值函數式不一樣的(應該是對象地址不一樣)

No6:

返回閉包時牢記一點:返回函數不要引用任何迴圈變數,或者後續會發生變化的變數

原因就在於返回的函數引用了迴圈變數,但它並非立刻執行,所以迴圈變數都是最後一個值

解決方案

這樣f(i)就會立即執行

No7:

匿名函數

 No8:

decorator在代碼運行期間動態增加功能的方式,稱之為“裝飾器”(Decorator)。

@log放到now()函數的定義處,相當於執行了語句:

now = log(now)

3層嵌套的效果是這樣的:

now = log(‘execute‘)(now)

No9:

偏函數:functools.partial的作用就是,把一個函數的某些參數給固定住(也就是設定預設值),返回一個新的函數,調用這個新函數會更簡單

 No10:

一個.py檔案就稱之為一個模組(Module)

每一個包目錄下面都會有一個__init__.py的檔案,這個檔案是必須存在的,否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空檔案,也可以有Python代碼,因為__init__.py本身就是一個模組,而它的模組名就是它所在的包名

系統內建了sys模組,自己的模組就不可命名為sys.py,否則將無法匯入系統內建的sys模組

No11:

模組調用

 

 

#!/usr/bin/env python3#可以讓這個hello.py檔案直接在Unix/Linux/Mac上運行# -*- coding:utf-8 -*-‘ a test module ‘#任何模組代碼的第一個字串都被視為模組的文檔注釋__author__ = ‘Wang Lei‘import sysimport greetdef test():    args = sys.argv    if len(args)==1:        print(‘Hello,world‘)    elif len(args)==2:        print(‘Hello,%s!‘ % args[1])    else:        print(‘Too many arguments!‘)        if __name__==‘__main__‘:    #test()    print(greet.greeting(‘wa‘))

 

#!/usr/bin/env python3# -*- coding:utf-8 -*-‘ a test module ‘__author__ = ‘Wang Lei‘def _private_1(name):    return ‘Hello,%s‘ % namedef _private_2(name):    return ‘Hi,%s‘ % namedef greeting(name):    if len(name)>3:        return _private_1(name)    else:        return _private_2(name)

 運行結果

PS D:\wanglei\python> python hello.py
Hi,wa

No12:

安裝常用模組

anaclnda地址:https://www.anaconda.com/download/#windows

【python】函數式編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.