人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズド
4126 ワード
転載は先見を明記してください.http://my.csdn.net/
原文の住所:https://blog.csdn.net/pcaxb/article/details/91994655
人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズド
目次
人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズド
1.飾り器の初探
2.高次関数
3.関数の入れ子
4.クローズド
5.関数クローズド拡張
6.飾り器+@文法飴
1)関数の運転時間を計算するデコレーション
2)飾り器に戻り値を加算する
3)飾り器にパラメータを加える
4)飾り器にパラメータを加える
6.ストレス解消シーケンス
1)複数の変数を同時に定義する
2)リストの最初の要素と最後の要素を取得します.
3)2つの値を交換する
1.飾り器の初探
湖南省の参考資料:https://www.cnblogs.com/Lin-Yi/p/7305364.html
6.飾り器+@文法飴
1)複数の変数を同時に定義する
ブログのアドレス:https://blog.csdn.net/pcaxb/article/details/91994655
原文の住所:https://blog.csdn.net/pcaxb/article/details/91994655
人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズド
目次
人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズド
1.飾り器の初探
2.高次関数
3.関数の入れ子
4.クローズド
5.関数クローズド拡張
6.飾り器+@文法飴
1)関数の運転時間を計算するデコレーション
2)飾り器に戻り値を加算する
3)飾り器にパラメータを加える
4)飾り器にパラメータを加える
6.ストレス解消シーケンス
1)複数の変数を同時に定義する
2)リストの最初の要素と最後の要素を取得します.
3)2つの値を交換する
1.飾り器の初探
#
# ,
# : ,
# : + +
# :
# ( )
# ,
# import time
# #
# print(time.time())
2.高次関数# :
# 1).
# 2).
# 3). ,
def test01():
time.sleep(0.5)
print(111)
def test02(func):
start_time = time.time()
func()
end_time = time.time()
print(" :%s" % (end_time - start_time))
return func
test01 = test02(test01)
test01()
# test01 2 ,
3.関数の入れ子 ,
def father(name):
print('from father %s' % name)
def son():
print('from son')
def grandson():
print('from grandson')
grandson()
# locals
print(111111111111, locals(), 22222222222222222)
son()
father(' ')
4.クローズド# , , 。 。
def father(name):
def son():
# name='alex'
print(' [%s]' % name)
def grandson():
# name='wupeiqi'
print(' [%s]' % name)
grandson()
son()
father(' ')
5.関数クローズド拡張湖南省の参考資料:https://www.cnblogs.com/Lin-Yi/p/7305364.html
6.飾り器+@文法飴
# : 1) 2) 3)
# :decr decr2
# :
def decr(func):
def decr2(): # 1)
func() # 2)
return decr2 # 3)
1)関数の運転時間を計算するデコレーションdef timmer_opr(func):
def timmer_in(**kwargs):
start_time = time.time()
res = func(**kwargs)
end_time = time.time()
print(" :%s" % (end_time - start_time))
return res
return timmer_in
2)飾り器に戻り値を加算する@timmer_opr
def test04(**kwargs):
time.sleep(1)
print("test04 ")
return " test04 name=%s age=%s height=%s" % (kwargs['name'],
kwargs['age'], kwargs.get('height') or '')
# @
# test04 = timmer_opr(test04) # @timmer_opr
3)飾り器にパラメータを加えるres1 = test04(**{'name': 'pca', 'age': 18})
print(res1)
res2 = test04(**{'name': 'pca', 'age': 18, 'height': 19})
print(res2)
4)飾り器にパラメータを加えるdef timmer_opr_out(params):
def timmer_opr5(func):
def timmer_in(**kwargs):
start_time = time.time()
res = func(**kwargs)
end_time = time.time()
print("test05 :%s %s" % ((end_time - start_time), params))
return res
return timmer_in
return timmer_opr5
@timmer_opr_out(" ")
def test05():
time.sleep(0.1)
print("test05 ")
res3 = test05()
print(res3)
6.ストレス解消シーケンス1)複数の変数を同時に定義する
a, b, c = [1, 2, 4]
print(a, b, c) # 1 2 4
2)リストの最初の要素と最後の要素を取得します.ages = [1, 2, 3, 4, 5, 6, 7]
m, *_, n = ages # m ,n ,_ , _,
print(m, n, _) # 1, 7 [2, 3, 4, 5, 6]
3)2つの値を交換するx, y = 1, 2
x, y = y, x
print(x, y) # 2 1
:https://www.cnblogs.com/linhaifeng/articles/6140395.html
人工知能シリーズ-Pythonシリーズ(8)装飾器=高次関数+関数ネスト+クローズドブログのアドレス:https://blog.csdn.net/pcaxb/article/details/91994655