ホームページ バックエンド開発 Python チュートリアル Python の魅力について詳しく学ぶ

Python の魅力について詳しく学ぶ

Nov 26, 2019 pm 05:58 PM
python 魔法の方法

Python の魅力について詳しく学ぶ

Python マジック メソッドとは

マジック メソッドはその名の通り魔法のようなもので、必要なときにいつでも何かを提供できます。 . あなたのアイデアを実現する方法。マジックメソッドとは、Python にあらかじめ組み込まれており、特定の操作を実行する際に自動的に呼び出される二重アンダースコアで囲まれたメソッドのことで、Python のオブジェクト指向の知恵の結晶です。初心者にとっては、Python の魔法のメソッドをマスターすることが特に重要になります。

Python マジック メソッドを使用する理由

Python のマジック メソッドを使用すると Python の自由度が高まり、書き換える必要がない場合にはマジック メソッドを使用することもできます。書き換えが必要な場合、ユーザーは自分のニーズに応じて一部のメソッドを書き換えて、自分の期待を満たすこともできます。 Python がオブジェクト指向言語であることはよく知られており、Python の基本的な魔法のメソッドにより、Python はオブジェクト指向に優れています。

##__imul__(self, other)代入乗算の動作を定義します: *= #__itruediv__(self, other)代入真の除算の動作を定義します: /=__ifloordiv__(self, other) other)代入整数除算の動作を定義する: //=__imod__(self, other)代入モジュロ アルゴリズムの動作を定義する: %=__ipow__(self, other[, modulo])代入累乗の動作を定義します: **=__ilshift__ (self, other)代入のビット単位の左シフトの動作を定義します: <<=__irshift__(self, other) 代入のビット単位の右シフトの動作を定義します: >>=__iand__(self, other)ビット単位の AND 演算の動作を定義します。代入の: &= __ixor__(self, other)代入のビットごとの XOR 演算の動作を定義します: ^=# #__ior__( self, other)__neg__(self)__pos__ (self)__abs__(self)invert__(self)ビットごとの反転の動作を定義します: ~x__complex__(self)complex() によって呼び出されたときの動作を定義します (適切な値を返す必要があります)__int__(self)int() によって呼び出されたときの動作を定義します (適切な値を返す必要があります) __float__(self) float() によって呼び出されたときの動作を定義します (適切な値を返す必要があります) __round__(self[, n])定義round() によって呼び出されたときの動作 (適切な値を返す必要があります) __index__(self)1. オブジェクトがスライス式の場合、整数強制を実装します__enter__(self)1. with ステートメントを使用する場合の初期化動作を定義します__exit__(self, exc_type, exc_value,traceback)1 の後の名前にバインドされます。定義されている場合 コード ブロックが実行または終了した後にコンテキスト マネージャーが行うべきこと ##getitem__(self, key)self[key]# と同等、コンテナ内の指定された要素を取得する動作を定義します。 ##__setitem__(self, key, value) と同等の、コンテナ内の指定された要素を設定する動作を定義します。 #__delitem__(self, key) は、コンテナ内の指定された要素を削除する動作を定義します。これは、del self[key]__iter__(self) と同等です。 コンテナを反復するときの要素の動作を定義します。__reversed__(self)reversed() によって呼び出されたときの動作を定義します__contains__ (self, item)メンバー テスト演算子を使用するときの動作を定義します (in または not in)推奨される学習: Python ビデオ チュートリアル

#マジック メソッド名

説明

基本的なマジックの方法 (より一般的に使用される)

__new__(cls[, ...]) 1. オブジェクトのインスタンス化時に呼び出される最初のメソッド
2. そのパラメータは、処理のために __init__ メソッドに直接渡されます。 3.我们一般不会重写该方法
__init__(self[, ...]) 构造方法,初始化类的时候被调用
__del__(self) 析构方法,当实例化对象被彻底销毁时被调用(实例化对象的所有指针都被销毁时被调用)
__call__(self[, args...]) 允许一个类的实例像函数一样被调用:x(a, b) 调用 x.__call__(a, b)
__len__(self) 定义当被 len() 调用时的行为
__repr__(self) 定义当被 repr() 调用时的行为
__str__(self) 定义当被 str() 调用时的行为
__bytes__(self) 定义当被 bytes() 调用时的行为
__hash__(self) 定义当被 hash() 调用时的行为
__bool__(self) 定义当被 bool() 调用时的行为,应该返回 True 或 False
__format__(self, format_spec) 定义当被 format() 调用时的行为
  属性相关的方法
__getattr__(self, name) 定义当用户试图获取一个不存在的属性时的行为
__getattribute__(self, name) 定义当该类的属性被访问时的行为
__setattr__(self, name, value) 定义当一个属性被设置时的行为
__delattr__(self, name) 定义当一个属性被删除时的行为
__dir__(self) 定义当 dir() 被调用时的行为
__get__(self, instance, owner) 定义当描述符的值被取得时的行为
__set__(self, instance, value) 定义当描述符的值被改变时的行为
__delete__(self, instance) 定义当描述符的值被删除时的行为
  比较操作符
__lt__(self, other) 定义小于号的行为:x < y 调用 x.__lt__(y)
__le__(self, other)定义小于等于号的行为:x <= y 调用 x.__le__(y)
__eq__(self, other)定义等于号的行为:x == y 调用 x.__eq__(y)
__ne__(self, other)定义不等号的行为:x != y 调用 x.__ne__(y)
__gt__(self, other)定义大于号的行为:x > y 调用 x.__gt__(y)
__ge__(self, other) 定义大于等于号的行为:x >= y 调用 x.__ge__(y)
  算数运算符
__add__(self, other) 定义加法的行为:+
__sub__(self, other) 定义减法的行为:-
__mul__(self, other) 定义乘法的行为:*
__truediv__(self, other) 定义真除法的行为:/
__floordiv__(self, other) 定义整数除法的行为://
__mod__(self, other) 定义取模算法的行为:%
__divmod__(self, other) 定义当被 divmod() 调用时的行为
__pow__(self, other[, modulo]) 定义当被 power() 调用或 ** 运算时的行为
__lshift__(self, other) 定义按位左移位的行为:<<
__rshift__(self, other)定义按位右移位的行为:>>
__and__(self, other) 定义按位与操作的行为:&
__xor__(self, other) 定义按位异或操作的行为:^
__or__(self, other) 定义按位或操作的行为:|
  反运算(类似于运算方法)
__radd__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rsub__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rmul__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rtruediv__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用 
__rfloordiv__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rmod__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rdivmod__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rpow__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rlshift__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__rrshift__(self, other)   当被运算对象(左边的操作对象)不支持该运算时被调用
__rxor__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
__ror__(self, other)  当被运算对象(左边的操作对象)不支持该运算时被调用
  增量赋值运算
__iadd__(self, other) 代入追加の動作を定義します: =
__isub__(self 、other) 代入減算の動作を定義します: -=
代入のビットごとの OR 演算の動作を定義します: |=
単項演算子
正符号の動作を定義します: x
負の符号の動作を定義します: -x
abs() によって呼び出されたときの動作を定義します
型変換
2. スライス時に使用できるカスタム数値タイプを定義する場合は、__index__
を定義する必要があります。 3. __index__ が定義されている場合、 __int__ も定義する必要があり、同じ値を返します
コンテキスト管理 (ステートメントを使用)
2. __enter__ の戻り値は、with ステートメントのターゲット、または as
2. 通常、コード ブロックの実行後に例外の処理、作業のクリーンアップ、または日常的な作業を行うために使用されます。
コンテナ タイプ (一般)コンテナ クラスの操作に使用されます)
__len__(self) len() によって呼び出されたときの動作を定義します (通常はコンテナ クラスの長さを返します) )
self[key] = value

以上がPython の魅力について詳しく学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

See all articles