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
ほかにも、ジェネレータなどの機能もあるので、調べてみてくださいね