Python ビデオ チュートリアル コラムでは、Python の組み込み関数を紹介します。
Python Cat
の前回の記事では、リストを作成する 2 つの方法、つまりリテラルの使用方法を比較しました。走行速度の違いを分析する内蔵タイプ。
list() が遅い理由を分析すると、名前検索と関数呼び出しの 2 つのステップが必要であると記事に記載されていましたが、これは新たな疑問につながります。組み込み型?なぜリスト作成ロジックを直接呼び出せないのでしょうか?つまり、インタプリタは何をすべきかを「知る」ために、なぜ名前検索を行う必要があるのでしょうか?
実際、理由は非常に簡単です: 組み込み関数/組み込み型の名前はキーワードではなく、開発者が外部から使用するためにインタープリターに組み込まれた便利な関数にすぎません。ボックス。PS: 組み込み関数は組み込み型とよく似ていますが、list() は実際には組み込み関数ではなく組み込み型です。これら 2 つの混乱する概念を分析しました。この記事を参照してください。理解と表現を容易にするために、以下ではこれらを総称して組み込み関数と呼びます。1. 組み込み関数の検索優先順位は最も低くなります
組み込み関数の名前はキーワードではなく、再割り当てすることができます。
たとえば、次の例:# 正常调用内置函数list(range(3)) # 结果:[0, 1, 2]# 定义任意函数,然后赋值给 listdef test(n): print("Hello World!") list = test list(range(3)) # 结果:Hello World!复制代码
関数の名前は、システムの組み込みスコープ内にありますが、キーワードほど安定していません。ユーザーのローカル スコープ内のオブジェクトによって簡単に傍受される可能性があります。
インタープリタが名前を検索する順序は「ローカル スコープ -> グローバル スコープ -> 組み込みスコープ」であるため、実際には組み込み関数の優先順位が最も低くなります。 初心者の場合、予期せぬ状況が発生する可能性があります(69 個の組み込み関数があり、すべてを覚えるのは困難です)。 それでは、なぜ Python はすべての組み込み関数の名前をオーバーライド不可能なキーワードに設定しないのでしょうか?
その理由は、一方ではキーワードの数を制御したいということですが、他方ではユーザーにより多くの自由を残したいということもあります。組み込み関数はインタプリタの実装として推奨されるものであり、開発者は必要に応じて組み込み関数と同じ名前の関数を実装できます。 ただし、そのようなシナリオはまれであり、開発者は通常、異なる名前で関数を定義します。Python 標準ライブラリを例に取ると、ast モジュールには literal_eval() 関数 (標準 eval ( ) 組み込み関数)、
pprint モジュールには pprint() 関数があり (print() 組み込み関数と比較して)、
itertools モジュールには zip_longest() があります。 function (zip() 組み込み関数と比較して) function)...
使いやすさを考慮して、Python では、一般的に使用されるいくつかの組み込み型、つまり文字列、リスト、タプル、辞書。
一般に、すべてのプログラミング言語には何らかのリテラル表現が必要ですが、基本的には数値型、文字列、ブール型、null などの基本型に限定されます。
Python では、いくつかのデータ構造タイプのリテラルも追加されているため、より便利になっていますが、これは、組み込み関数が最速ではない理由も説明しています。
一般的に言えば、同じ完全な関数の場合、組み込み関数は常にカスタム関数よりも高速です。これは、インタプリタがいくつかの基礎的な最適化を行うことができるためです。たとえば、len() 組み込み関数はユーザーよりも確実に高速です。 -define x .len() 関数は高速です。
このことから、「組み込み関数のほうが常に速い」という誤解を生む人もいます。
ユーザー定義関数と比較すると、インタプリタの組み込み関数はバックドアに近いですが、リテラル表現は組み込み関数に比べて高速なバックドアです。
言い換えれば、一部の組み込み関数/組み込み型は、リテラル表現がある場合には最速ではありません。
概要
確かに、Python 自体は全能ではなく、その文法コンポーネント (組み込み関数/型) も全能ではありません。しかし、一般的に私たちは、組み込み関数/型は常に「優れている」ものであり、多くの特別な優遇を受け、「全能」であるように見えると考えています。
この記事では、「list() は実際には [] に負けている」という問題を解決し、2 つの観点から実際に組み込み関数にいくつかの欠点があることを明らかにします。 組み込み関数の名前はキーワードではありませんが、組み込み関数 Scope は名前検索の優先順位が最も低いため、一部の組み込み関数/型は、呼び出されたときに対応するリテラル表現よりも実行が大幅に遅くなります。
この記事は、前のトピック「なぜ Python なのか」に関する議論を拡張したものです。一方で、前の内容を充実させるものです。また、他方で、Python のいくつかの基本概念と、その実装。
この記事が気に入ったら、「いいね」とサポートをお願いします!さらに、同様のトピックを 20 件書いています。Python猫
をフォローして閲覧し、Github で小さなスターを付けてください~~
関連の無料学習推奨事項: Python ビデオ チュートリアル
以上がPython の組み込み関数がすべてではない理由を理解していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

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セグメンテーションツールを使用してテキストを処理します...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
