検索
ホームページバックエンド開発Python チュートリアルPython の高階関数を理解するのに役立つ記事

1. 高階関数とは何ですか?

高階関数は Python において非常に便利な関数で、別の関数をパラメータとして受け取ることができる関数です。このような関数を高階関数と呼びます。

ケースコード分析を通じて、段階的に概念を深めていきます。


2. 変数は関数を指すことができます

Python の組み込みを使用します関数 絶対値関数 abs() を例に挙げます。

#次のコードでこの関数を呼び出します:

print(abs(-10))

実行結果:


Python の高階関数を理解するのに役立つ記事

#しかし、腹筋だけを書く場合はどうなるでしょうか?

print(abs)

実行結果:


可见,abs(-10)是函数调用,而abs是函数本身。

要获得函数调用结果,可以把结果赋值给变量:

x = abs(-10)
print(x)

运行结果:

Python の高階関数を理解するのに役立つ記事

但是,如果把函数本身赋值给变量呢?

f = abs
print(f)

运行结果:

Python の高階関数を理解するのに役立つ記事

结论:

函数本身也可以赋值给变量,即:变量可以指向函数。

如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?

代码验证:

f = abs
print(f(-10))

运行结果:

Python の高階関数を理解するのに役立つ記事

结果相同,说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。


三、函数名也是变量

那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数!

把abs指向其他对象,会有什么情况发生?

abs = 10
print(abs(-10))

运行结果:

Python の高階関数を理解するのに役立つ記事

代码解析:

把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))

Python の高階関数を理解するのに役立つ記事

注:

编写高阶函数,就是让函数的参数能够接收别的函数。

関数をパラメータとして渡します。このような関数は高階関数と呼ばれます。関数プログラミングは、この高度に抽象化されたプログラミング パラダイムを指します。


#5. 概要

この記事は、 Python と Python の紹介 関数内での高階関数の使用。各セクションは、読者がよりよく理解できるように、事例を通じて分析され、操作レンダリングが表示されます。実際の操作で関数を渡すときのエラー報告の問題に焦点を当てています。

以上がPython の高階関数を理解するのに役立つ記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

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

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

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

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

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

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

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

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

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

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

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

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの精度を改善する方法は?Apr 02, 2025 am 07:09 AM

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

正規表現を使用して、最初の閉じたタグと停止に一致する方法は?正規表現を使用して、最初の閉じたタグと停止に一致する方法は?Apr 02, 2025 am 07:06 AM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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