函式引數詳解

2022-06-13 20:12:08 字數 2363 閱讀 7786

程式設計方式:物件導向&面向過程   函式式程式設計 面向過程一般沒有返回值   例如:c 面向過程 就是執行上下文 沒有返回值

函式定義:就是封裝好的功能  關鍵字 def

函式的優點: 優化**  避免重複,方便修改  通用功能的呼叫    可重用  一致性  可擴充套件

形參:是在函式定義階段就規定的引數,它就相當於定義變數時的變數名

實參:是在函式呼叫階段傳入的引數,它相當於定義變數時的變數值

1、無參函式:

defindex():

print('ok'

) 2、空函式:

deflogin():

pass

3、有參函式:

deflogin(username):

print(username)

4、引數的詳細描述

1、位置引數

在函式定義階段按照順序從左到右書寫的變數名就叫位置形參

在函式呼叫階段按照順序從左到右書寫的具體的值就叫位置實參

位置引數定義之後一定要傳遞引數

2、關鍵字引數

在函式呼叫階段,以key=value形式進行,關鍵子引數

3、預設值引數

在函式定義階段提前給形參賦值的操作就叫預設值引數

4、可變長引數***

* 在函式定義階段:接收所有溢位的位置引數,將接受的值以元組的形式傳入*後面的變數中

*在函式呼叫階段:將列表、元組、字串、集合等可以使用的for迴圈的容器型別打散成位位置引數

** 在函式定義階段:接收所有溢位的關鍵字引數,將接受的值以字典的形式傳入**後面的變數中

** 在函式呼叫階段:將字典打散成關鍵字引數傳入形參

def

t01(x,y,z):

print

(x)

print

(y)

print

(z)t01(1,2,3) #

位置引數和引數一一對應

t01(4,y=1,z=2) #

形式引數不能放在位置引數前面

# 預設引數

def connect(x,port=3306): 預設引數不能不能放在位置引數前面

print

(x)

print

(port)

connect(

'127.0.0.1

')

#

傳參方式:位置引數 注意:位置引數必須放在關鍵字引數前面

defcheck_bigger(a,b):

if a >b:

return

a

else

:

return

bs = check_bigger(1,3) #

位置引數

print

(s)s1 = check_bigger(b=1,a=3) #

關鍵字引數

print

(s1)

s2 = check_bigger(1,b=3) #

位置引數必須放在關鍵字引數前面

print

(s2)

#預設引數

def check_bigger1(a,b=3):

if a >b:

return

a

else

:

return

bs3 = check_bigger1(4)

print(s3)

#

*args: 接收所有溢位的位置引數,接收的值都被存入乙個元組

# **kwargs:接收所有溢位的關鍵字引數,接收的值都被存入乙個字典

#*:打散傳入容器型別

####*args:接收所有溢位的位置引數,接收的值都被存入乙個元組

def func(a,b,*args):

print(a,b,args[0],args) #

args為元組

func(1,2,3,4,5,6)

###**kwargs: 接收所有溢位的關鍵字,接收的值被存入字典

def func(a,b,*args,**kwargs):

print(a,b,args[0],kwargs) #kw

args為字典

func(1,2,3,4,5,6,c=6)

### *: 將實參打散傳入函式 注意 * 與 *args **kwargs 沒有關係

deffunc(a,b,c,d,e):

print

(a,b,c,d,e)

func(1,2,3,*(4,5))

PHP date函式引數詳解

ime 在php中是得到乙個數字,這個數字表示從1970 01 01到現在共走了多少秒,很奇怪吧 不過這樣方便計算,要找出前一天的時間就是 time 60 60 24 要找出前一年的時間就是 time 60 60 24 365 那麼如何把這個數字換成日期格式呢,就要用到date函式了 t time ...

python函式引數詳解

如果你傳入的引數物件是可變物件 列表,字典,這個時候就是引用傳遞。如果你傳入的引數物件是不可變的物件 數字,元組,字串,這個時候就是值傳遞。對於值傳遞,函式內部修改的是引數的副本,不會改變原值 對於引用傳遞,函式內部修改了是變數的指向,從而相應對變數進行了改變。舉例如下 當引數是不可變物件時 a 1...

strtol函式引數詳解

long int strtol const char nptr,char endptr,int base 為什麼第二個引數不用初始化只用定義乙個未初始化的char 型別的指標即可?strtol是atoi的增強版,引數base範圍從2至36,或0。引數base代表採用的進製方式,0 10是十進位制 1...