[python] 之 函数简介
函數(shù)是對程序邏輯進行結構化或過程化的一種編程方法,詳細的說明請參考《python學習手冊》,不能及時詳細解釋,望見諒!。
一、創(chuàng)建函數(shù)
1.1 def語句
def function(args):
  "documentation"
function_body_suite
1.2 聲明、定義與參數(shù)
聲明指定義了函數(shù)名和參數(shù)(名),未定義函數(shù)主體代碼塊
定義指定義函數(shù)主體代碼塊
參數(shù)主要包含位置參數(shù),默認參數(shù),非關鍵字參數(shù)(*args),關鍵字參數(shù)(**kargs),且在創(chuàng)建函數(shù)時,必須遵循這個順序。非關鍵字參數(shù)(*args),關鍵字參數(shù)(**kargs)在創(chuàng)建函數(shù)中使用,可收集參數(shù);在調(diào)用中使用,可解包參數(shù)。謹記默認可變參數(shù)陷阱。
1.3 前向引用
python中,函數(shù)不存在前向引用的規(guī)則(誰先定義無影響,甚至是無順序的嵌套),只需要滿足在調(diào)用前定義即可
def foo()
print('foo')
bar()
def bar()
print('bar')
foo()
1.4 屬性
通過句點屬性標識法進行訪問和添加屬性,函數(shù)的屬性與函數(shù)對象有關,和函數(shù)的作用域無關
1.5 內(nèi)嵌函數(shù)
在函數(shù)體內(nèi)創(chuàng)建另一個函數(shù)
1.6 函數(shù)裝飾器
@decorator(dec_opt_args)
def function(args):
"doc"
body_suite
#for example
@g
@f
def foo():
pass
foo = g(f(foo))
1.7 偏函數(shù)
from functools import partial
add1 = partial(add, 1) ?# add1(x) = add(1, x)
baseTwo = partial(int,base=2) #將參數(shù)base=2,固定為int函數(shù)的固定參數(shù)。
1.8 閉包 函數(shù)
如果在一個內(nèi)部函數(shù)里,對在外部作用域(但不是在全局可作用域)的變量進行引用,那么這個內(nèi)部函數(shù)就是一閉包,并具有記憶性。
1.9 遞歸
如果函數(shù)包含了對其自身的調(diào)用,該函數(shù)就是遞歸函數(shù)
def factorial(n):
if n == 1 or n == 0:
return 1
else:
return (n*factorial(n-1))
1.10 函數(shù)式編程
lambda [arg1 [, arg2, ...]]:expr
lambda表達式返回可調(diào)用的函數(shù)對象。
1.11 內(nèi)建函數(shù)
map(),filter(),reduce()均創(chuàng)建了迭代語境,類似與for
map(func, seqs)遍歷序列中的每一個元素,并通過func函數(shù)處理,返回所有值組成的列表
filter(func, seqs)遍歷序列中的每一個元素,保留函數(shù)返回為布爾真的元素,將所有的值添加到一個列表中并返回
reduce(func, seqs)取出序列的前兩個元素,傳入二元函數(shù)func來獲得一個單一的值,然后將該值同下一個元素,再次傳入二元函數(shù)func,一次運算處理序列,直至結束。
轉載于:https://www.cnblogs.com/xiaofeiIDO/p/6009667.html
總結
以上是生活随笔為你收集整理的[python] 之 函数简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 第二次作业+105032014098
- 下一篇: 使用Junit对Spring进行单元测试
