検索

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
__le__(self, other) 定义小于等于号的行为:x
__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 までご連絡ください。
Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Pythonを使用した科学コンピューティングでアレイはどのように使用されていますか?Apr 25, 2025 am 12:28 AM

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

同じシステムで異なるPythonバージョンをどのように処理しますか?同じシステムで異なるPythonバージョンをどのように処理しますか?Apr 25, 2025 am 12:24 AM

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?標準のPythonアレイでnumpyアレイを使用することの利点は何ですか?Apr 25, 2025 am 12:21 AM

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、

アレイの均質な性質はパフォーマンスにどのように影響しますか?アレイの均質な性質はパフォーマンスにどのように影響しますか?Apr 25, 2025 am 12:13 AM

パフォーマンスに対する配列の均一性の影響は二重です。1)均一性により、コンパイラはメモリアクセスを最適化し、パフォーマンスを改善できます。 2)しかし、タイプの多様性を制限し、それが非効率につながる可能性があります。要するに、適切なデータ構造を選択することが重要です。

実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?実行可能なPythonスクリプトを作成するためのベストプラクティスは何ですか?Apr 25, 2025 am 12:11 AM

craftexecutablepythonscripts、次のようになります

numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?numpyアレイは、アレイモジュールを使用して作成された配列とどのように異なりますか?Apr 24, 2025 pm 03:53 PM

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Numpyアレイの使用は、Pythonで配列モジュール配列の使用と比較してどのように比較されますか?Apr 24, 2025 pm 03:49 PM

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

CTypesモジュールは、Pythonの配列にどのように関連していますか?CTypesモジュールは、Pythonの配列にどのように関連していますか?Apr 24, 2025 pm 03:45 PM

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1

メモ帳++7.3.1

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