Python での深層学習のための特別なメソッドとマルチパラダイム
Python のすべてはオブジェクトですが、同時に Python はマルチパラダイム言語 (マルチパラダイム) でもあり、オブジェクト指向でプログラムを作成できるだけでなく、同じ方法でプログラムを作成することもできます。プロセス指向の関数 (関数型、宣言型などもありますが、まだ詳しくは説明しません)。 Python のマルチパラダイムは、Python オブジェクトの特別なメソッドに依存しています。
特別なメソッド名の前後には 2 つのアンダースコアが続きます。次の例でわかるように、マジック メソッドとも呼ばれる特別なメソッドは、Python の構文と式の多くを定義します。特別なメソッドがオブジェクトに定義されている場合、Python はそれらのメソッドにも「特別な扱い」を与えます。たとえば、 __init__() メソッドを定義するクラスは、オブジェクトの作成時に __init__() メソッドの操作を自動的に実行します。
(dir() を使用すると、オブジェクトが所有する特別なメソッド (dir(1) など) を表示できます)
オペレーター
Python の演算子は、オブジェクトの特別なメソッドを呼び出すことによって実装されます。例:
「ABC」 + 'XYZ'
以下の操作が実際に実行されました:
したがって、Python では、2 つのオブジェクトを加算できるかどうかは、対応するオブジェクトに __add__() メソッドがあるかどうかによって決まります。対応するオブジェクトに __add__() メソッドがあれば、そのオブジェクトが数学的に加算的でない場合でも、加算の形式を使用して obj.__add__() で定義された演算を表現できます。 Python では、演算子は記述を簡素化するように機能しますが、演算子を実装するには特別なメソッドに依存します。
Python はユーザーにオブジェクト指向プログラミング手法の使用を強制しません。ユーザーは好みの使用方法を選択できます (+ 記号を使用するか、よりオブジェクト指向の __add__() メソッドを使用するかを選択するなど)。特別なメソッドを記述するのは常に困難です。
次の操作を試して効果を確認し、それに対応する演算子を考えてください
真。__または__(偽)
組み込み関数
演算子と同様に、多くの組み込み関数もオブジェクトを呼び出すための特別なメソッドです。たとえば
実際に行うことは
__len__() と比較して、組み込み関数 len() も記述を簡素化する役割を果たします。
次の操作を試して、それに対応する組み込み関数を考えてください
(2.3).__int__()
テーブル要素の参照
以下はテーブル要素を参照する一般的な方法です
print(li[3])
上記のプログラムが li[3] まで実行されると、Python は [] 記号を見つけて理解して、__getitem__() メソッドを呼び出します。
print(li.__getitem__(3))
以下の操作を見て対応を考えてみてください
{'a':1, 'b':2}.__delitem__('a')
関数
Python では関数もオブジェクトの一種であるとすでに述べました。実際、 __call__() 特殊メソッドを持つオブジェクトはすべて関数として扱われます。たとえば、次の例:
Def __call__(self, a):
+ 5 を返します
add = SampleMore() # 関数オブジェクト
print(add(2))
map(add, [2, 4, 5]) # 関数オブジェクトを渡す
add は、SampleMore クラスのオブジェクトです。呼び出されると、add は 5 を加算する操作を実行します。 add は関数オブジェクトとして map() 関数に渡すこともできます。
もちろん、もっと「美しい」方法を使うこともできます、考えてみてください。 概要
組み込みオブジェクト (整数、テーブル、文字列など) については、それらに必要な特別なメソッドが Python で用意されています。ユーザー定義オブジェクトは、特別なメソッドを追加することでカスタム構文を実装することもできます。特別なメソッドは Python の最下層に比較的近く、多くの Python 関数の実装は特別なメソッドに依存しています。後でさらに例を見ていきます。 Python の構文の多くは、オブジェクト指向モデルのカプセル化に基づいています。オブジェクト モデルは Python のスケルトンであり、強力な火力を備えたフル機能のマルハナバチです。ただし、Python はより簡潔な構文も提供しており、さまざまなプログラミング形式を使用できるため、必要に応じてオブジェクト指向インターフェイスの一部を隠すことができます。これまで見てきたように、カマロ スポーツカーは、その堂々たる武器を隠し、人間が使いやすいドアとシートを備えています。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

毎日のネットワークインタラクションでPythonを使用したクラッキング検証コードの調査、検証コードは、自動化されたプログラムの悪意のある操作を防ぐための一般的なセキュリティメカニズムです...

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

Pythonクロスプラットフォームデスクトップアプリケーション開発ライブラリの選択多くのPython開発者は、WindowsシステムとLinuxシステムの両方で実行できるデスクトップアプリケーションを開発したいと考えています...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...
