ホームページ >バックエンド開発 >Python チュートリアル >Python 関数の重複コード エラーを解決するにはどうすればよいですか?

Python 関数の重複コード エラーを解決するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-25 14:41:461052ブラウズ

Python は、習得が簡単で強力なオブジェクト指向の関数型プログラミング言語です。しかし、コードを作成するときは、よくある間違いを犯しがちです。関数には繰り返しコードがたくさんあります。この場合、この問題を解決するにはいくつかのテクニックが必要です。次に、この記事では、Python 関数でコードの繰り返しを効果的に回避できるいくつかの方法を紹介します。

  1. パブリック コードの抽出

一般的な例外チェック、ログ記録、時間計算などの関数内で同様のコード ブロックがよく見つかります。これらのコード ブロックを別の関数に抽出し、元の関数でその関数を呼び出すことができます。このアプローチにより、コードの重複を回避し、コードの可読性を向上させることができます。

ロギングを例として、log(message) 関数を定義できます:

import logging

def log(message):
    logging.basicConfig(filename='example.log', level=logging.DEBUG)
    logging.debug(message)

次に、ログを記録する必要がある関数内でこの関数を呼び出します:

def my_function():
    log('starting my_function')

    # 函数体

    log('ending my_function')

この方法では、ログに記録する必要がある各関数での重複コードを回避でき、log 関数を呼び出すだけで済みます。

  1. 関数パラメータの使用

Python では、関数パラメータを使用してコードの重複を避けることができます。パラメータを関数に渡すことで、異なるデータを使用して同じ操作を実行できます。たとえば、ある関数のすべてのパラメーターを別の関数に渡すと、コードの重複を避けることができます。

def foo(a, b, c):
    # 函数体

def bar(a, b, c):
    # 函数体

    foo(a, b, c)

    # 函数体

上記のコードでは、foo 関数が bar 関数内で呼び出され、渡されたパラメータは foo## のパラメータに対応します。 # 関数。このようにして、bar 関数を使用して、繰り返さずに foo 関数を呼び出すことができます。

    継承の使用
継承は、オブジェクト指向プログラミングにおける重要なテクニックです。継承を通じてコードの重複を避けることができます。基本クラスを定義すると、基本クラスのコードを派生クラスで再利用できます。

たとえば、

_helper という名前の関数を含む基本クラス BaseClass があるとします。次に、この関数をサブクラス ChildClass1ChildClass2 で使用する必要があります。 _helper 関数は、継承を通じて基本クラスからサブクラスに移動できます。

class BaseClass:
    def _helper(self):
        # 函数体

class ChildClass1(BaseClass):
    def method1(self):
        self._helper()

class ChildClass2(BaseClass):
    def method2(self):
        self._helper()

サブクラスでは、

_helper 関数を呼び出す必要がありますが、サブクラスごとに関数を再度記述する必要はありません。代わりに、基本クラスのコードを継承するだけで問題を解決できます。

概要

Python 関数でコードの重複を回避すると、コードの可読性と保守性が向上します。この記事では、この問題を解決する 3 つの方法 (共通コードの抽出、関数パラメーターの使用、継承の使用) について説明します。 Python 関数を作成するときは、コードの管理と保守を適切に行うために、コードの重複をできるだけ避ける必要があります。

以上がPython 関数の重複コード エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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