人生苦短我用Python 第三週 函式周

2022-04-10 19:23:09 字數 3712 閱讀 3160

函式的定義

1,def 函式名(引數1,引數2......):

「注釋:函式的作用和引數,增加可讀性」,

2,函式體

3,返回值

最簡單的函式:

def

func():

print('

hello world

')

函式名後的括號內的引數的順序是:位置引數,*args,預設引數,**kwargs

函式的呼叫:函式名()

def

func():

print('

hello world')

func()

函式名的本質:函式名相當於變數名指定記憶體內的乙個位置,可以做引數,返回值

函式的引數:

實參:位置傳參,關鍵字傳參,動態傳參

形參:位置引數(必須傳值,不然報錯),預設引數(可以不傳值,就是預設引數的值,也可以傳值,傳值就是實參的值),動態引數(*args(必須以位置傳參的方式傳參,得到的結果是元祖型別),**kwargs(必須以關鍵字傳參,得到的返回值是字典型別))

函式的返回值:

關鍵字:return

有返回值:

返回乙個值:有乙個變數接收

返回多個值:可以用乙個變數來接收,也可以用多個變數來接收,有多少個返回值,就用多少個變數來接收。

無返回值:

三種情況:1,不寫return 2,只寫return 3,寫return none 

命名空間

命名空間:

內建命名空間(存著python 為我們提前準備好的一些用法 input print等之類的)

全域性命名空間

區域性命名空間

取值順序

在區域性命名空間:區域性————》全域性————》內建

在全域性命名空間:全域性————》內建

x = 1

deff(x):

print

(x)f(10)

print(x)

輸出的f(10)結果是10,print(x)的值是1,全域性的取不到區域性的值。

作用域

全域性作用域(內建命名空間,全域性命名空間)

區域性作用域(區域性命名空間)

global 關鍵字

a = 10

deffunc():

global

a a = 20

print

(a)func()

print(a)

修改掉全域性的a=10

函式的巢狀

簡單的巢狀:

def

f1():

print("

in f1")

deff2():

print("

in f2")

f2()

f1()

作用域

def

f1():

a = 1

deff2():

a = 2f2()

print('

a in f1 :

',a)

f1()

呼叫f1得到的是print為a=1,print那個在外部那個作用域,呼叫不了內部的a=2.

閉包:內部函式包含對外部作用域而非全劇作用域名字的引用,該內部函式稱為閉包函式

簡單的閉包函式**:

def

func():

a=1def

func1(a):

print(a)

開放封閉原則:對修改時封閉的,對擴充套件是開放點,所以有了裝飾器函式

裝飾器函式:和偽裝時期函式呢?很簡單,我理解的就是在不改變你要裝飾的那個函式呼叫方法,和內部函式體的情況下,自己編乙個閉包(你編肯定是編不了了,python已經為你準備好了,你用那個模式就可以了)函式,把要裝飾的那個函式變一種方法(這種方法你也想不出來了,python也幫你想好了,你理解意思就可以了)放到裡面,起到到什麼作用呢?作用就是在這個函式前後做一些功能達到你想要的結果.

固定的裝飾器函式(python給你準備好的)

def

def inner(*args,**kwargs):

'''這個函式執行前要做的額

'''ret = f(*args,**kwargs) #

這個就是下面要被修飾的函式

'''這個函式執行之後要做的

'''return

ret

這個就是裝飾函式

#def

func():

print("

henllo world")

func()

帶引數的裝飾器函式

f =false

defouter(flag):

def

def inner(*args,**kwargs):

ifflag:

print('

before')

ret = func(*args,**kwargs)

print('

after')

else

: ret = func(*args, **kwargs)

return

ret

return

inner

return

@outer(f)

#def

hahaha():

print('

hahaha')

@outer(f)

#shuangww = outer(shuangww)

defshuangww():

print('

shuangwaiwai')

shuangww()

hahaha()

多個裝飾器函式也可以裝飾乙個函式

def

definner():

print('')

func()

print('')

return

inner

def

definner():

print('')

func()

print('')

return

inner

deff():

print('

in f')

f()

python人生苦短 人生苦短,我用Python

python學習筆記 每日總結,反思.學習,1,注釋 單行注釋 注釋內容 多行注釋 注釋內容 快捷鍵 ctrl 2,變數 type 變數 用來檢視變數型別 變數型別,程式中需要特別注意變數型別,很容易報錯,或者很熟悉變數型別的報錯,錯了再改也成.格式轉化 紅線常用 bool布林型別 ture和fla...

人生苦短,我用python

python是一種物件導向的解釋型計算機程式語言,由荷蘭人guido van rossum於1989年發明,第乙個公開發行版發行於1991年。python是純粹的自由軟體,源 和直譯器cpython遵循 gpl gnu general public license 協議 python語法簡潔清晰,特...

人生苦短,我用Python

畢設 寫完之後,整個人就無所事事。昨天給老闆發了封郵件,請他推薦些書讀一讀 老闆說,有空學學python吧 life is short,you need python q1 python當中對空格和tab鍵的區分很嚴格。a1 在format當中選擇 tabify region 解決該問題。q2 在p...