函式的好處:
1.保持一致性
2.可重用
3.可擴充套件
函式的返回值:
1.空,返回none
2.有乙個物件,返回當前物件
3.有多個物件,返回元組(tuple)
import time
#定義函式,列印日誌時間
deflogger()
: time_format =
'%y-%m-%d %x'
time_current = time.strftime(time_format)
with
open
('a'
,'a+'
)as f:
f.write(
'%s日誌時間\n'
%time_current)
#返回值為0
deffunc1()
:print
('abc'
) logger(
)return
0#定義過程,無返回值
deffunc2()
:print
('defg'
) logger(
)#返回值為tuple
deffunc3()
:print
('多個物件時返回tuple'
)return1,
'str12',[
'qu'
,'wu'],
x1 = func1(
)x2 = func2(
)print
('x1 is %s'
%x1)
print
('x2 is %s'
%x2)
函式之引數:
1.位置引數
2.關鍵字引數
3.*args,接收多個引數,換成元組形式輸出
4.**kwargs,接收關鍵字引數,換成字典形式輸出
#函式之形參
deftest
(x,y)
:print
(x,y)
#使用關鍵字呼叫,與順序無關
test(y=
3,x=1)
#輸出1,3
#位置引數呼叫,與形參一一對應
test(3,
1)#輸出3,1
#預設引數,非必須傳遞
deftest3
(x,y=6)
:#y=6為預設引數,預設為6,若賦新值,輸出新值
print
(x,y)
test(
1,y=3)
#引數組,args為變數,可以任意定義,接收的引數可以不固定
deftest4
(*args)
:print
(args)
test4(
'a',
'b',
'c',
'd',
'e')
test4(*[
1,2,
3,4,
5])#引數組2,*是接收多個引數,方成元組的形式
deftest5
(x,*args)
:print
(x)print
(args)
test5(1,
23,45)
#接收字典,**是接收關鍵字引數,換成字典形式
deftest6
(**kwargs)
:print
(kwargs)
print
(kwargs[
'name'])
print
(kwargs[
'age'])
test6(name=
'wuyifan'
,age=12)
test6(
**)
python 函式傳參 傳參和傳引用
首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...
Python函式傳參
首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...
python 入參函式 Python 函式傳參
這個世界其實從不曾有乙個人能取代另乙個人的位置,所謂的取代,只是以前的那個人被遺忘了。普通傳參的小坑def test a return a print test print test print test 返回的結果 a a a a a a 原因 傳入的引數是乙個空的列表,python遇到函式的時候...