n.関数


コードの回収性=>関数

  • 定義:0個以上のパラメータ
  • コール:0個または1個以上の結果を得る.
  • 定義関数=>def

    def "함수이름"(매개변수):
    	pass  
    

    パラメータとパラメータ


  • 関数に渡される値を引数と呼びます.

  • パラメータと関数を呼び出すと、パラメータの値が関数の対応するパラメータにコピーされます.
  • 関数の外部をパラメータ、内部をパラメータと呼びます.

    役に立つNone

  • Noneとは何もないPythonの特別値
  • ブール値のFalseのように見えますが、異なる値を表します
    Noneを使用して欠落したNull値を区別

    位置パラメータ

  • 該当パラメータの位置因子(位置パラメータ)に値を順次コピー
  • 一般的ですが、位置因数の欠点は、それぞれの位置の意味を知ることです

    キーワード引数


    パラメータに適切な名前を指定して、位置パラメータの混乱を回避します.
  • 位置因数とキーワード因数を混合して使用する場合、位置因数は先に来るべきである.
  • デフォルトのパラメータ値の指定

    def menu(wine, entree, desert='pudding'):
    	return {'wine' : wine, 'entree' : entree, 'desert' : desert}
    
    >>> menu('chardonny', 'chicken')
    {'wine' : chardonny, 'entree' : chicken, 'desert' : desert }
    
    砂漠係数を入力する場合は、デフォルト値の代わりに入力係数(doughnut)を使用します.

    Pythonテクノロジー面接登場例


    デフォルトのパラメータ値が指定されている場合.
    def buggy(arg, result=[]):
    	result.append(arg)
        print(result)
        
    >>> buggy('a')
    ['a']
    
    >>> buggy('b')
    ['a','b']
    指定されていません
    def works(arg):
    	result=[]
        result.append(arg)
        return result
        
    >>> works('a')
    ['a']
    
    >>> works('b')
    ['b']
    

    ないぶかんすう

    def outter(a, b):
        def inner(c,d):
        	return c+d
        return inner(a,b)
        
    >>> outter(4,7)
    11
  • 内部関数=文やコードの重複を避けるために、別の関数で複雑なタスクを1回または複数回実行する場合に便利です
  • エンクロージャ

  • エンクロージャ=他の関数によって動的に作成され、外部関数ㅜによって生成された変数値を変更し、関数を格納可能
  • 匿名関数:lambda

    def edit_story(words, func):
        for word in word:
        	print(func(word))
            
            
    >>> stairs = ['thud', 'meow', 'thud', 'hiss']
    
    def enliven(word):
       return word.capitalize() + '!'
       
    edit_story(stairs, enliven)
    
    Thud!
    Meow!
    Thud!
    Hiss!
    ランダを使う
    edit_story(stairs, lambda word: word.capitalize() + '!'

    はつでんき

  • ジェネレータ=シーケンスを生成するオブジェクト
  • 発電機=1回しか回らない.リスト、3、文字列、バイナリファイルがメモリに存在します.
    マネージャ=即時に値を生成し、ウィジェットを介して一度に1つの値のみを渡す
    発電機=すべての値を覚えていないので、発電機は回転できません.

    レコーダ

  • コードを変更せずに使用している関数を変更したい場合がある
    ex)デバッグ文を追加し、関数に渡されるパラメータを表示する
    Decorator=>1つの関数を使用して別の関数を返す関数

    さいきかんすう

  • 自分の関数を呼び出す