Pythonの基本-簡単に。 パート5.機能の定義、基本。

OOPの章を書き始めて、私はPythonのこのような大きくて必要なセクションを関数として捧げることを完全に忘れていることに気付きました。 このトピックは大規模で広範囲に渡ります。レッスン間の一時停止をあまり長くしないために、私はそれを2つの部分に分けることにしました。 最初に、基本を説明し、次にPython関数の詳細な機能を説明します。



Pythonの関数は単純に宣言されるのではなく、非常に単純に宣言されます。 最も簡単な例を次に示します。



  def empty_func():
    合格する 


広告はキーワードdefで始まります。これは、ご想像のとおり、defineの省略形です。 その後、関数の名前が来ます。 括弧内の名前はパラメーターのリストです。この場合は欠落しています。

関数の本体は、次の行からインデントされます。 Pythonでは、空のボディを持つ関数は禁止されているため、「空の演算子」パスが上記の関数のボディとして使用されることに注意してください。

次に、より深刻な例を考えてみましょう。



  def safe_div(x、y):
     "" "安全な分割を行います:-)
楽しさと利益のために "" "
     y!= 0の場合:
         z = x / y
        プリントz
         zを返す
    その他:
        プリント「Yippie-kay-yay、motherf___er!」 


この例にはいくつかの革新があります。 最初に目を引くのは、関数本体のすぐ後に続くdocstring行です。

通常、この行はソーステキストの複数の行を使用します(しゃれはごめんなさい)。したがって、三重引用符で設定されます。 機能、その目的、パラメータなどを説明することを目的としています。 すべての優れたIDEは、この行で機能します。 __doc__プロパティを使用して、プログラム自体からアクセスすることもできます。



  safe_div .__ doc__を印刷します 


このプロパティ(はい、はい、関数でも実際にはクラスであるというPythonのプロパティです)は、対話型コンソールのセッション中に使用すると便利です。

  >>> ftplibからFTPをインポート
 >>> FTP .__ doc__を印刷
 FTPクライアントクラス。

    接続を作成するには、次の引数を使用してクラスを呼び出します。
            ホスト、ユーザー、パスワード、アカウント
    これらはすべて文字列であり、デフォルト値は ''です。
    次に、オプションのホストおよびポート引数とともにself.connect()を使用します。
 #私がさらに修正しました:-) 


元の関数に戻りましょう。 そのエッセンスは非常にシンプルで、xとyの2つのパラメーターが必要です。 yが0でない場合、xをyで除算し、結果を画面に表示し、その商を結果として返します。 関数の結果は、returnコマンドを使用して返されます。 前のレッスンで説明したタプルメカニズムのおかげで、Pythonの関数は一度に多くのオブジェクトを返すことができます。

除数がまだゼロの場合、関数はエラーメッセージを表示します。 この場合、関数は何も返さないと仮定するのは誤りです。 関数が「nothing」を返すと言う方が正しいでしょう:)つまり、関数にreturnステートメントがない場合、またはパラメーターなしで呼び出された場合、関数は特別な値Noneを返します。 これは、print safe_div(10、0)のようなものを呼び出すことで簡単に確認できます。



これはもう少し複雑な例で、Guido van Rossumによるプレゼンテーションから取られています。



  def gcd(a、b):
    「NODを見つける」
   一方、a!= 0:
       a、b = b%a、a#並列定義
   リターンb 


この関数は、2つの数値の最大公約数を見つけます。



一般に、Python関数のパラメーターは参照によって渡されることに留意する必要があります。 あなたが慣れなければならない別の、おそらく自明でない事実は、関数自体が割り当て可能な値であるという事実です。 safe_div関数をさらに実験に使用する場合、次のコードを記述できます。



  mystic_function = safe_div
印刷mystic_function(10、4) 


これですべてです。「オーバーボード」には、Pythonで関数を定義する多くの側面がまだあります。これについては次回強調します。



チェックする演習。

1. GCDを見つける既存の機能に基づいて、2つの番号のNOCを検索する機能を記述します。

2.引数として渡された関数の集計ルーチンを作成します。 引数は、初期値、最終値、およびタブステップも指定します。



PSところで、「レッスン」の最適なボリュームは何ですか? どちらが良いか-頻繁に大きな章が表示されることは少なくなります。



All Articles