函式def
'''
python 函式
def 函式名(引數列表):
函式體如果引數要指定資料型別,
引數名:資料型別
num : int
str1 : str
list1 : list
dict1 : dict
set1 : set
'''def
addnum
(a:int
, b:
int, c:
int)
:return a + b + c
defaddnum2
(a:int
, b:
int, c:
int)
: total = a + b + c
return
num = addnum(1,
2,3)
num2 = addnum2(1,
2,3)
print
(num)
# 6print
(num2)
# none
如果沒有return就沒有返回值,只寫return,返回none
'''
函式引數列表,可以設定不定長引數
def 函式名(arg1,*args) *args: 函式用元組接收引數
def 函式名(arg1,**args) **args: 函式用字典接收引數
* 和 ** 可以同時出現,不過*只能在**前面,不然會報錯
def 函式名(arg1,*,arg2,arg3,arg4) 表示: * 號之後的引數必須用字典型別傳入
'''def
para
(arg1,
*args)
:print
(arg1)
print
(args)
defpara1
(arg1,
**kwargs)
:print
(arg1)
print
(kwargs)
defpara2
(arg1,
*args,
**kwargs)
:print
(arg1)
print
(args)
print
(kwargs)
defpara3
(arg1,
*,arg2,arg3)
:print
(arg1)
print
(arg2)
print
(arg3)
para(1,
2,3,
4)para1(
1,a=
2,b=
3,c=4)
para2(1,
11,111,a=
2,b=
3,c=4)
para3(
1,arg2=
2,arg3=3)
'''1
(2, 3, 4)11
(11, 111)12
3'''
類class
'''
類用class標識
class 類名:
...class 類名(繼承類名): # python支援多繼承,
...有幾個名詞:
1. 方法解析順序(method resolution order),簡稱 mro
python 剛開始的時候多繼承方法解析順序採用了深度優先搜尋演算法(dfs),在python2.2版本,引入了
新式類,新式類在深度優先搜尋演算法的基礎上做了優化,但是類的解析順序不是單調性的,所以在python2.3版本,對新式類採用了c3演算法
class.mro(): 此方法可以被乙個元類來過載,用來解析類例項的解析順序,會在類例項化的時候呼叫,結果儲存於__mro__之中
class.__mro__: 此屬性是由類組成的元組,在方法解析期間會基於它來查詢基類
2. 新式類和舊式類
舊式類(經典類): python2.2之前的類都是經典類,宣告類的時候不用顯式的繼承object,採用的演算法是深度優先搜尋演算法
python2.2引入新式類,宣告類的時候顯式的繼承object,mro演算法採用c3演算法,在python2中,經典類mro
演算法還是深度優先,新式類則採用c3演算法
新式類: python3中,支援新式類,所以不論是否顯式的繼承了object,都是新式類,mro演算法都採用了c3演算法,廣度優先
'''classa:
defgetname
(self)
:print
('a'
)class
b(a)
:# def getname(self):
# print('b')
pass
class
c(a)
:def
getname
(self)
:print
('c'
)class
d(b, c, a)
:pass
''' a
/ | \
b | c
\ | /
d'''print
(d.mro())
d = d(
)d.getname(
)'''
廣度搜尋: 先在d中找,如果沒有,搜尋b,如果沒有,不會深入b的父類a,而是依次找c
[, , , , ]
b注釋掉b的getname之後,結果如下:
[, , , , ]
c'''
Python教程 def 函式
什麼是函式?函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段。函式能提高應用的模組性,和 的重複利用率。如何定義函式?任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。函式的第一行語句可以選擇性地使用文件字串 用於存放函式說明。函式內容以冒號起始,並且縮排。retur...
python學習之def函式
def函式就是對乙個新函式的自定義,有簡單的函式也有複雜的函式,以下列舉一些較為簡單的def使用方法。含有自變數的函式 def f x x x 2print x f 2 此處便為函式的呼叫 結果 4也可以寫成這樣 def f x y x 2print y f 2 此處便為函式的呼叫 結果 4不含有變...
Python學習之函式 def
目錄 簡單來說 函式 就是自己定義的一段 小程式 方便自己調取使用 def 用來定義函式的關鍵字 也就是這個函式的名字 函式執行到return的時候就會返回值 並且把函式內的引數全部清空 變數不再占用記憶體庫空間 退出函式 函式的格式如下就是 x是進入的引數,也可以不用輸入值,因為函式裡面全部的值都...