同じ機能を実現するには、Java言語を使用するのに50行かかるのに対し、Pythonを使用するのに10行しかかからない場合があります。多くの読者は、Pythonを学習する前にPythonを使用したことがあり、その後始めた前任者からこれを聞いたことがあるでしょう。 Pythonを学ぶ。
Pythonは確かに簡潔でエレガントであり、私を含む多くの読者はそれに魅了されています。
今日、小さな例を通して、私はもう一度Pythonのクリーンな方法を理解しました。
すべてのパラメーターをチェックして、整数型が表示されないことを確認します。クラスデコレータを使用すると、クリーンで一般的なことができます。
import functools
classValidateParameters:
def __init__(self, func):
# funcの装飾後に機能情報が変更されていないことを確認してください
functools.update_wrapper(self, func)
self.func = func
# このメソッドをオーバーライドして、クラスオブジェクトを呼び出し可能にします
def __call__(self,*parameters):ifany([isinstance(item, int)for item in parameters]):
raise TypeError("Parameter shouldn't be int!!")else:return self.func(*parameters)
上記のクラスを使用して、連結文字列関数concatなどのさまざまな関数の装飾を開始します。パラメータを渡す最初の呼び出しはすべて文字列であり、タイプは要件を満たしています。パラメータを渡す2番目の呼び出しは整数型であり、例外をスローします。パラメータintであってはいけません!!
@ ValidateParameters
def concat(*list_string):return"".join(list_string)
# returns anb
print(concat("a","n","b"))
# raises Error.print(concat("a",1,"c"))
タイプチェックが必要な関数は、ValidateParemetersで装飾できます。大文字の関数は次のとおりです。文字列を連結した後、最初の文字を大文字にする必要があります。
@ ValidateParameters
def capital(*list_string):returnconcat(*list_string).capitalize()print(capital("a","n","b"))print(capital(2,"n","b"))
入力パラメータが整数型の場合、上記の例外をスローする必要があり、型チェックも便利です。
上記では、Pythonクラスデコレータを使用して、コードクリーンの小さなデモンストレーションを実装しています。
Pandas、TensorFlow、Kerasなどの一般的に使用されるフレームワークは、ソースコードで同様の使用法を確認できます。この種の構文により、Pythonは本当にクリーンになります。
Pythonをマスターするには、外側から内側まで理解する必要があります。今年は、初心者に非常に適した20のコアPythonトピックを整理するために4か月以上を費やしました。ここにいくつかの章があります。
これらの20のトピックをマスターして理解した後、いくつかの詳細なPythonチュートリアルを読むことができます。あなたはその時点で専門家になると思います。