ホームページ  >  記事  >  バックエンド開発  >  Pythonの学習ノート - 関数を定義する

Pythonの学習ノート - 関数を定義する

高洛峰
高洛峰オリジナル
2016-11-15 14:55:481580ブラウズ

Python で関数を定義するためのキーワードは def です。たとえば、my_function という関数を定義するには、次のように定義できます。括弧内の x と y は渡されるパラメーターです。

def my_function():
    # function body

戻り値

この関数はキーワード return を使用してデータを返すことができます。関数が戻るまで実行されると、戻り、関数は実行されなくなります。 return ステートメントのない関数は、デフォルトで None を返します。
return none は return と省略できます。

空の関数

何も行わない関数を定義したい場合は、 pass ステートメントを使用できます。
たとえば、

def do_nothing()
    pass

pass はプレースホルダーとして機能します。この関数の特定の内容を定義する必要がない場合は、 pass を使用できます。

パラメータチェック

前回の記事では、組み込み関数が渡されたパラメータの数とデータ型をチェックすることを紹介しました。では、Python はカスタム関数をどのように処理するのでしょうか?
関数を定義します

def my_function(x,y):
    return x*y

Call: my_function(1,2,3)

Error:

Traceback (most recent call last):
  File "/Users/W/Code/Python/LearnPython/DataType.py", line 4, in <module>
    my_function(1,2,3)
TypeError: my_function() takes exactly 2 arguments (3 given)

Call: my_function(1,"abc")

Error: エラーメッセージは返されません。実際、my_function によって渡される 2 つのパラメータが整数と浮動小数点数であることが望ましいと考えています。

関数にパラメータチェックを追加します

my_function にいくつかの変更を加えます。

def my_function(x, y):
    if not (isinstance((x,y),(int,float)) and isinstance(y,(int,float))):
        raise TypeError(&#39;Bad operand type&#39;)
    return x*y

このとき、my_function関数を呼び出して間違ったパラメータを渡すと、TypeErrorがスローされます。

関数は複数の値を返します

Python は複数の値を返すことをサポートしています。 Python は実際にタプルを返すことによってこれを実装します。簡単なデモを通じてそれを検証できます:

def func():
    return 2, 3
print func()

は (2,3) のようなタプルを出力します。
構文に関しては、タプルを返すときに括弧を省略できます。つまり、複数の変数が同時にタプルを受け取り、位置に応じて対応する値を割り当てることができます。たとえば、
x,y = func() です。

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