この記事の例では、Python 固有のメソッドと反復メカニズムについて説明しており、参考のために共有されています。具体的な分析は次のとおりです。
ご存知のとおり、Python の設計哲学は「エレガント」、「明確」、「シンプル」です。1 つのことを行うための最良の方法は 1 つだけです。この優雅さは、多くの詳細が自然に隠されているという事実にあります。その後ろに。たとえば、for ステートメントを直接使用して一部のオブジェクトを反復でき、一部のグローバル関数は共通の特性を持つ多くのオブジェクトに作用でき、ジェネレーター デコレーター イントロスペクションなどの機能もあります。これらの実装の多くは Python の内部専用メソッドに依存していますが、外部では統合されたグローバル関数を使用して動作するため、Python は人間の直感に沿って記述しやすくなっています。
Python 固有のメソッド
クラスのプライベート メソッド: 二重ダッシュで始まり、二重アンダースコアで終わらないメソッド
クラス固有のメソッド: 二重アンダースコアで始まり、組み込み関数
によって呼び出されることがよくあります。
モジュールのプライベート オブジェクト: 単一のアンダースコアで始まり、他のモジュールにインポートできません。
#!/usr/bin/env python # Python3 实现 _modeluprivate = '本模块私有' #不能用 from module import * 导入 class People(): def __myprivate(self): print("This is a private fun") def __test__(self): print('call __private: ',end='') self.__myprivate() if __name__ == '__main__': a = People() a.__test__() # 专有方法,一般系统专用,自己的类方法不要用这种新式命名 a._People__myprivate() # 私有方法被对外被翻译成了这种名字,从而达到私有的效果 print(_modeluprivate) ''''' 输出 call __private: This is a private fun This is a private fun 本模块私有 '''
Python の反復メカニズム
Python の反復可能オブジェクトは、__iter__() メソッドを実装するオブジェクトであり、__iter__() メソッドは反復子オブジェクトを返します。__next__() メソッドは反復子オブジェクト内に実装する必要があります。イテレータは、コレクションを走査するための統合インターフェイスを提供し、for ステートメントを使用して直接操作できるため、非常に便利です。一部の特に大規模なコレクションや場合によっては無限のコレクションの場合、反復子はデータ セットの一度のロードを回避し、ほぼ唯一のアクセス方法です。
#!/usr/bin/env python # Python3 实现 class IterTest(): def __init__(self): self.a = 0 def __iter__(self): return self def __next__(self): self.a += 1 if self.a > 3: raise StopIteration return self.a if __name__ == '__main__': a = IterTest() for i in a: print(i,end=' ') b = IterTest() print(list(b)) # list()构造器,可以接受可迭代对象 c = IterTest() print(next(c), next(c), next(c)) ''''' 输出 1 2 3 [1, 2, 3] 1 2 3 '''
#!/usr/bin/env python # Python3 实现 def funGenerate(): yield 1 yield 2 yield 3 if __name__ == '__main__': a = funGenerate() for i in a: print(i, end=' ') b = funGenerate() print(next(b),next(b),next(b)) ''''' 输出 1 2 3 1 2 3 '''