[Python]関数

高次関数

  • 関数をパラメーターとして受け入れるか、関数を結果として返す関数
コードを表示

コードを表示

 

入れ子関数

  • 内部関数をカプセル化する
  • 階乗関数が最初に入力データをチェックするなど、効率を改善します

閉鎖

  • 外部関数が関数を返す
1  def nth_power(exponent):
 2      def exponent_of(base):
 3          return base ** exponent
 4      return exponent_of
 5  
6 square = nth_power(2 7 cube = nth_power(3 8  
9  print(square(2 ))
 10  print(キューブ(3))
コードを表示

 匿名関数

  • 1行のみ
  • ステートメントではなく式
  • 渡されたパラメータは反復可能なオブジェクトです。ラムダは内部的に反復可能なオブジェクトの__next__メソッドを呼び出してパラメータとして値を取得し、ラムダ関数のコロンの前に値を渡し、コロンの後に式計算の結果を返します
  • 利点:コードの再現性の低下、モジュール式コード
1 [(ラムダ X:X * X)(X)のためのx における範囲(10)]
コードを表示

 

1 l = [(1,20)、(3,0)、(9,10)、(2、-1 )]
 2 l.sort(key = lambda x:x [1 ])
 3  print(l)
コードを表示

呼び出し可能なオブジェクト

  • ():呼び出し可能な演算子
  • 呼び出し可能オブジェクトは組み込み関数callabel()を実装します
1つの インポートランダム
 2つの 
3  クラスBingoCage:
 4      デフ __init__ (自己、項目):
 5          self._items = リスト(商品)
 6          random.shuffle(self._items)
 図7は、     デフピック(自己):
 8          試み9              リターンself._items ().pop
 10          以外はIndexErrorを:
 11              レイズ LookupErrorが(' 空BingoCageから選択' 12      DEF  __call__ (自己):
 13          戻りself.pick()
14  
15 bingo = BingoCage(range(5 ))
 16 bingo.pick()
コードを表示

関数型プログラミング

  • コードの各部分は不変です。つまり、純粋な関数で構成されています
  • map(function、iterable):iterableの各要素に対して、function関数を使用し、最後に新しいトラバース可能なコレクションを返します
  • filter(関数、反復可能):反復可能の各要素について、関数functionを使用して判断し、Trueを返す要素が新しいトラバース可能なコレクションを形成します
  • reduce(関数、反復可能):セットの最初の2つの要素を操作し、結果と3番目の要素を返す、など
1  map函数
2  def factorial(n):
 3      n <2 if 1 else n * factorial(n-1 )の
 場合 1を返す4 5 fact = factorial
 6 list(map(fact、range(10))) 
コードを表示

1リスト(map(fact、filter(lambda n:n%2、range(6))))
コードを表示

1  から functools import reduce 
 2 reduce(lambda x、y:x + y、[1,2,3,4,5])
コードを表示

おすすめ

転載: www.cnblogs.com/cxc1357/p/12708173.html