IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

Python関数の基本理解をしてみました

pythonの関数について。

自分で勉強で気になる部分だけピックアップして、忘れないように記事として起こしておこう。だから、ここに記載されていないpythonの関数の機能があるので、ご注意ください

 

ラムダ式(lambda)

ラムダ式は、一箇所とかしか使わない使い捨てのような関数を定義するときに使います。式として使われるので、関数の引数として使うことおができます。

myfunc = lambda a,b: x+y

print(myfunc(3,6))    #=> 9

 

イテレータ(iterator)

これがあまり理解できない。イテレータとは、次の要素にアクセスすることを繰り返すインターフェイスのことだそうです。配列のようなデータ構造の要素を順に処理をしていく繰り返し処理を簡単に記述できる構文だそうです。見える化かな。

 

class MyR:
      def __init__(self, max):
      self._max = max

      def __iter__(self):
      self._count = 0
      return self

      def __next__(self):
      result = self._count
      if result >= self._max:
      raise StopIteration
      self._count += 1
      return result

for n in MyR(3):
      print(n) #=> 0, 1, 2

デコレータ(@)

これは便利。関数を実行する前後に特殊な処理を実行したい場合に用いる。デコレータをうまく使うと同じような関数を複数つくらなくてよくなるはず。

def mydecolater(func):

    def wrapper():

        print("go")

        func()

        print("end")

    return wrapper

 

@mydecolater

def hello():

    print("hello")

hello()    #-> go,hellp,end

ほかにも、ジェネレータなどの機能もあるので、調べてみてくださいね