1. 高階関数とは何ですか?
高階関数は Python において非常に便利な関数で、別の関数をパラメータとして受け取ることができる関数です。このような関数を高階関数と呼びます。
ケースコード分析を通じて、段階的に概念を深めていきます。
2. 変数は関数を指すことができます
Python の組み込みを使用します関数 絶対値関数 abs() を例に挙げます。
#次のコードでこの関数を呼び出します:print(abs(-10))実行結果:
#しかし、腹筋だけを書く場合はどうなるでしょうか?
print(abs)実行結果:
可见,abs(-10)是函数调用,而abs是函数本身。
要获得函数调用结果,可以把结果赋值给变量:
x = abs(-10) print(x)
运行结果:
但是,如果把函数本身赋值给变量呢?
f = abs print(f)
运行结果:
结论:
函数本身也可以赋值给变量,即:变量可以指向函数。
如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?
代码验证:
f = abs print(f(-10))
运行结果:
结果相同,说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。
三、函数名也是变量
那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数!
把abs指向其他对象,会有什么情况发生?
abs = 10 print(abs(-10))
运行结果:
代码解析:
把abs指向10后,就无法通过abs(-10)调用该函数了!因为abs这个变量已经不指向求绝对值函数而是指向一个整数10!
当然实际代码绝对不能这么写,这里是为了说明函数名也是变量。要恢复abs函数,请重启Python交互环境。
注:
由于abs函数实际上是定义在builtin模块中的,所以要让修改abs变量的指向在其它模块也生效,要用builtin.abs = 10。
四、传入函数
既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
一个最简单的高阶函数:
def add(x, y, f): return f(x) + f(y)
当调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,可以推导计算过程为:
x = -5 y = 6 f = abs f(x) + f(y) == abs(-5) + abs(6) == 11 return 11 print(add(-5, 6, abs))
用代码验证一下:
print(add(-5, 6, abs))
注:
编写高阶函数,就是让函数的参数能够接收别的函数。
関数をパラメータとして渡します。このような関数は高階関数と呼ばれます。関数プログラミングは、この高度に抽象化されたプログラミング パラダイムを指します。
#5. 概要
この記事は、 Python と Python の紹介 関数内での高階関数の使用。各セクションは、読者がよりよく理解できるように、事例を通じて分析され、操作レンダリングが表示されます。実際の操作で関数を渡すときのエラー報告の問題に焦点を当てています。
以上がPython の高階関数を理解するのに役立つ記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
