python學習 第8課

2021-08-18 23:16:01 字數 2365 閱讀 7735

函式命名時,由多個單詞拼接時,函式首字母小寫,從第二個單詞開始,首字母為大寫,即函式命名為駝峰樣式

def

hello():

print("hello world")

def

newhello():

print("this is new hello world")

裝飾器接收乙個功能,新增一些功能並返回。

python中的一切(是的,甚至是類)都是物件。 我們定義的名稱只是繫結到這些物件的識別符號。 函式也不例外,它們也是物件(帶有屬性)。 各種不同的名稱可以繫結到同乙個功能物件。

示例1:

def first(msg):

print(msg)

first("hello python")

second=first

second("this is python")

third=first("python test")

其中:second和first一樣,是提供相同輸出的方法,名稱first和second引用相同的函式物件。

third只是接受了first返回結果值

示例2:

#加法def add(x):

return x+1

#減法def sub(x):

return x-1

#操作函式

def operate(func,x):

result=func(x)

return result

#呼叫operate函式

print(operate(add,3))

print(operate(sub,7))

示例3:

此外,乙個函式可以返回另乙個函式

def backfunc():

def returnfunc():

print("hello")

return returnfunc

testfunc=backfunc()

testfunc()

裝飾器接收乙個函式,新增一些函式並返回。

一般裝飾器使用任何數量的引數,在python中,這個由function(* args,** kwargs)完成。 這樣,args將是位置引數的元組,kwargs將是關鍵字引數的字典。

示例1:

def startend(fun):

def wraper():

print("!!!!!!!!start!!!!!!!!")

fun()

print("!!!!!!!!!end!!!!!!!!!")

return wraper

# hello()  相當於執行  wraper()

@startend

def hello():

print("hello python")

hello()

裝飾器通@進行使用,相當於把函式hello()作為引數傳給startend()

@startend相當於hello=startend(hello)

呼叫hello()時,相當於呼叫了startend(hello)()

示例2:

#被除數校驗

def check(func):

def inner(a, b):

print("除數是,被除數是".format(a, b))

if b == 0:

print("被除數不能為0")

return

return func(a,b)

return inner

@check

def divide(a, b):

print("a除以b的商為".format(a / b))

divide(6, 3)

divide(5, 0)

示例3:

#多個裝飾器,乙個函式可以用不同(或相同)裝飾器多次裝飾。

def type_one(func):

def test01(*args,**kwargs):

print("*"*30)

func(*args,**kwargs)

print("*"*30)

return test01

def type_two(func):

def test02(*args,**kwargs):

print("#" * 30)

func(*args, **kwargs)

print("#" * 30)

return test02

@type_one

@type_two

def printer(msg):

print(msg)

printer(dict(a=1,b=2,c=3))

printer("my best day")

第8課 Python庫與模組

一.庫與模組 1.模組的誕生 學習了函式後我們知道將程式中反覆使用的程式段寫成函式,在要使用的時候直接呼叫,但是我們還是得在程式中寫一次這一段 於是就誕生了模組,將很多這樣的函式集中寫在乙個.py檔案裡面,要用的時候直接匯入這個檔案就可以了,其中能夠完成默寫特定功能的模組集合就被稱為庫。2.模組規則...

python學習 第14課

1.將ga10.wms5.jd.com.txt中分別以upstream和location開頭的內容篩選出來,並分別生成相應的新文件 import codecs,re,os with codecs.open ga10.wms5.jd.com.txt r as f1 pattern1 re.compil...

《笨辦法學Python》 第8課手記

第八課沒有新內容,作者在常見問題解答裡面說得很清楚,建議每一課的常見問題解答都要仔細閱讀。如下 formatter r r r r print formatter 1,2,3,4 print formatter one two three four print formatter formatter...