函式命名時,由多個單詞拼接時,函式首字母小寫,從第二個單詞開始,首字母為大寫,即函式命名為駝峰樣式
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...