1. ホーム
  2. スクリプト・コラム
  3. パイソン

Python関数の高度な応用を解説

2022-01-02 13:43:39

前置き

その

関数はよく知られているもので、pythonでは以下のような形式で定義されています。

def 関数名(正式な引数)。

関数本体

関数のカプセル化は、コードブロックの再利用を実現するためです。pythonにはいくつかの基本的な関数が組み込まれており、開発者は独自の関数を定義することもできます(最初に定義してから呼び出すだけです)。

I. 関数呼び出しの手順

<ブロッククオート

1. プログラムが関数呼び出しに遭遇した場合、実行を中断する

2、関数の引数に実際のパラメータ値を渡す

3. 関数本体文の実行

4、値を返して実行を続ける

2. パラメータのパックとアンパック

梱包

パラメータのパッキングとは、複数のパラメータを同時に扱えることを意味し、可変長パラメータとも呼ばれる。可変長パラメータは、関数定義の際に主に2つの形式で定義される。パラメータを任意の数だけ受け取り、タプルに格納する*parameterと、複数のKey-Valueペアを受け取り、辞書に格納する**parameterである。

タプルにパックされる

Type property of ResultSet TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE,or TYPE_SCROLL_SENSITIVE Explanation.

1. TYPE_FORWORD_ONLY, only forward scrolling.   
2. TYPE_SCROLL_INSENSITIVE, two-way scrolling, but not updated in time, that is, if the data in the database has been modified, and does not react in the ResultSet.   
3. TYPE_SCROLL_SENSITIVE, scrolls in both directions and keeps track of database updates in order to change the data in the ResultSet.

辞書としてラップする

def demo(**p):
  print(p)
demo(x=1,y=2,z=3)
# results
{'x':1,'y':2,'z':3}


パラメータパッキングとは、形式パラメータを*パラメータ名の形に、実パラメータを複数のパラメータに設定し、それを反復可能なオブジェクトのタプルや辞書に加工し、個を全体に詰め込むことである。

アンパッキング

パラメータパッキングとは対照的に、パラメータアンパッキングもsや**sの形をとります。複数の位置引数を持つ関数を呼び出すとき、リスト、タプル、セットなどの反復可能オブジェクトを実引数として使用し、実引数名の前に1を追加すると、Pythonは自動的にそれらを展開し、一連の値を複数の形式パラメータ変数にそれぞれ渡します。

def demo(a,b,c,d):
  print(a+B*c/d)
list1=[1,2,3,4]
demo(*list1)
# results
2.5


実パラメータが辞書である場合、**パラメータ名形式を用いてアンラップすることができ、これにより、辞書はパラメータ渡しのためのキーパラメータ的な形式に変換される。この形式のシリアルアンラップでは、実パラメータの辞書の全てのキーが、関数の形式パラメータの名前であるか、関数内の2つのモデルの可変長パラメータに対応していることが必要である。

s={'a':1,'b':2,'c':3}
def demo(a,b,c=4)
  print(a,b,c)
demo(**s)
# results
1 2 3


III. 変数の範囲

変数のスコープとは、その変数が使用可能な空間のことである

変数はスコープによって分けられる:グローバル変数、ローカル変数

グローバル変数:関数本体の外で定義された変数はグローバル変数となる

グローバル変数は関数の中でも外でも使用できますが、関数の中で直接変更することはできません。関数の中で変更する場合は、global キーワードを追加しなければなりません(python は関数の中でグローバル変数の値を変更することを推奨していません)。

ローカル変数:関数内で定義された変数はローカル変数である

ローカル変数とは、関数内部で定義された変数のことで、関数本体の外にあるローカル変数は無効です

関数内部で定義されるローカル変数と関数外部で定義されるグローバル変数は2つの概念(同じ名前の変数)です

a=1
def sum()
  a=3
# Here a outside the function and a inside the function are two variables 



第四に、変数のドキュメントコメントと変数名

1, 関数ドキュメント

関数ドキュメント関数を記述するために使用され、関数内の特別なコメントです。

def sum(a,b):
  '''
  Returns the sum of two numbers
  '''
  return a+b


2、機能名取得

__name__ メソッド

>>> print(print.__name__)
print
>>>


3、機能docの文書アクセス

<ブロッククオート

__doc__ メソッド

 概要

この記事があなたのお役に立ち、BinaryDevelopの他のコンテンツにもっと注目していただけることを願っています!この記事は以上です。