第一級オブジェクトとしての関数
クロージャーと、関数を引数として渡す方法を理解します。
「第一級オブジェクトとしての関数」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
導入
関数はオブジェクト
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))関数を引数として渡す
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))関数をコンテナに格納する
ops = [str.upper, str.lower, str.strip]
for op in ops:
print(op(' Hello '))関数を返す
def make_adder(n):
def adder(x): return x + n
return adder
add10 = make_adder(10)
print(add10(5), add10(20))クロージャ
def counter(start=0):
count = [start]
def inc():
count[0] += 1
return count[0]
return inc
c = counter()
print(c(), c(), c())無名関数としてのラムダ
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))map()とfilter()
nums = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, nums)))
print(list(filter(lambda x: x%2==0, nums)))functools.reduce()
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))呼び出し可能性の確認
print(callable(print))
print(callable(42))
class C:
def __call__(self): pass
print(callable(C()))関数のイントロスペクション
import inspect
def greet(name: str) -> str:
'''Returns a greeting.'''
return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))クイックチェック
復習
学習を続ける
よくある質問
「第一級オブジェクトとしての関数」レッスンは無料ですか?
はい。「第一級オブジェクトとしての関数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「第一級オブジェクトとしての関数」で何を学びますか?
クロージャーと、関数を引数として渡す方法を理解します。 ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「第一級オブジェクトとしての関数」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 第一級オブジェクトとしての関数
- カスタムデコレーターの作成
- @property デコレーター
- @classmethod と @staticmethod