python學習隨筆一

2021-10-01 13:31:00 字數 1805 閱讀 1729

1.為什麼需要使用裝飾器:簡單點說就是為了避免很多函式輸入重複的**,舉個例子如果有一百個函式你需要計算每個函式執行時間,你不可能說去在每個函式的開頭結尾加個時間戳然後相減,你需要直接呼叫裝飾器函式去計算就可以,詳情**見下圖

import time

def time_it(func):

def inner():

start = time.time()

func()

end = time.time()

print(『用時:{}秒』.format(end-start))

return inner

@time_it

def func1():

time.sleep(2)

print(「func1 is running.」)

ifname== 『main』:

func1()

2.什麼是閉包:簡單點說就是外函式裡面巢狀乙個內函式,外函式return內函式,內函式呼叫外函式的變數,像這樣一種返回內函式加外函式變數即為閉包

def outer(x):

a = x

def inner(y):

b = y

print(a+b)

return inner

f1 = outer(1) # 返回inner函式物件+區域性變數1(閉包)

f1(10)

3.nonlocal的作用:簡單點說就是函式裡面有個巢狀函式,不管是裡面的一層還是幾層,在上層函式寫個變數,要想在內函式裡面改變這個變數,需要將這個變數設定為全域性變數,詳情見例子

def c():

def a():

se=『男』

def b():

nonlocal ***

***=『女』

print(***)

b()a()

print(***)

c()4.如果使用裝飾器一般會接觸乙個模組functools,先看個例子

def inner():

print(』=開始正在執行外函式

==』)

res=func(『我的』)

print(』=結束執行外函式

@deco_out

def test(name=「張三」):

print(『被裝飾的函式{}』.format(test.name))

return name

ifname==『main』:

test()

functools裡面有個模組wraps,它的作用其實很簡單,如果被裝飾的函式test,你直接呼叫該函式,但是由於使用了裝飾器,所以你輸入test,其實它呼叫的是裝飾器的返回值函式,你要想該函式是test本身,就得在呼叫函式的上面加上wraps(func)就可以說明這個呼叫的函式是test

a,b,c=1,2,3 或』123』或【1,2,3】或(1,2,3)都可以

a,b,c=[1,2,3,4,5,6,7,8,9] 代表著可以選擇0個,也可以選擇多個 -->c=[3,4,5,6,7,8,9]

print([1,2,3,4,5,6]) 元組列表字串前面**可以將其拆開

6.sys

sys.ar** -->[『c:/users/dell/pycharmprojects/untitled/python學習**/隨手複製貼上.py』]

就是獲取當前檔案所在路徑

python學習隨筆

初始學習 菜雞乙個 1 用python提取excel資料 data pd.read excel r c users limaoli desktop ybsj.xlsx 這加了乙個r data np.array data 把列表轉換為陣列,方便後面的提取 datamat data 0 3 這個提取的是...

Python 學習隨筆

1.20200421 print輸入respone不能換行的問題 import urllib.parse import urllib.request data bytes urllib.parse.urlencode encoding utf8 respone urllib.request.urlo...

Python 學習隨筆

number 5 def test1 嘗試修改全域性變數值為10 在python中,是不允許直接修改全域性變數的值,如果使用賦值語句,結果是會在函式內部新定義乙個區域性變數 number 10 print test1 d number def test2 print test2 d number t...