この記事では、主に Python の関数とメソッドの違いをいくつかの側面から紹介します。
まず、分類の観点から分析します。
(1) 関数の分類: (推奨学習: Python ビデオ チュートリアル )
組み込み関数: Python に組み込まれている関数の一部。
匿名関数: 1 行のコードで関数を実装します。
再帰関数
カスタム関数: 独自のニーズに応じて関数を定義します。
(2) メソッドの分類:
通常のメソッド: self で直接呼び出されるメソッド。
プライベート メソッド: __関数名、クラス内でのみ呼び出すことができるメソッド。
プロパティ メソッド: @property。コードをより合理的に見せるために、メソッドをプロパティとして偽装します。
特別なメソッド (二重下線メソッド): __init__ を例に挙げると、インスタンス化されたオブジェクトの属性をカプセル化するために使用されます。オブジェクトがインスタンス化されている限り、__init メソッドが実行されます。オブジェクトのサブクラスにそのようなメソッドが存在しない場合は、親クラス(スーパークラス)を探します。親クラス(スーパークラス)が存在しない場合は、オブジェクト(Python 3.x)のクラスを直接継承し、そのクラスの__init__メソッドを実行します。クラス。クラスメソッド: クラス名を呼び出して、公開テンプレート内のプロパティとメソッドを操作します。
静的メソッド: クラス空間やオブジェクト メソッドを渡す必要はありません。この機能は、コードの一貫性と標準化を保証することです。クラス外のメソッドから完全に独立させることができますが、コードの一貫性を保つために、特定のメソッド.モジュール (py ファイル) に統合することができます。
第二に、スコープの観点から分析します。
(1) 関数のスコープ: 関数呼び出しの開始から関数の実行完了、関数に戻った後まで呼び出し元, 実行中に開かれたスペースは自動的に解放されます。つまり、関数の実行が完了した後、関数本体内の代入やその他のメソッドによって変更された変数の値は保持されません。開かれたスペースは、呼び出し元に返されると自動的に解放されます。
(2) メソッドのスコープ: インスタンス化されたオブジェクトを通じてメソッドが呼び出された場合、呼び出し後に開かれたスペースは解放されません。つまり、呼び出したメソッド内の変数の変更された値は常に保持されます。 。
最後に、呼び出し方法が異なります。
(1) 関数:「関数名()」を通じて呼び出されます。
(2) メソッド: 「オブジェクト.メソッド名」を通じて呼び出されます。
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
Python 関連の技術記事をさらに詳しく知りたい場合は、Python チュートリアル 列にアクセスして学習してください。
以上がPythonの関数とメソッドの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。