百万年俸のpythonの道 - day11 - ファーストクラスのオブジェクトや関数名を使用します

関数名は、ある変数で、それは特別な変数であるブラケットを持つ関数を実行することができ、可変

1.1。関数名メモリアドレス

def func():   
    print("呵呵")
print(func)

结果: <function func at 0x1101e4ea0>

1.2関数名は、他の変数に割り当てることができます

def func():   
    print("呵呵")
    print(func)
a = func    # 把函数当成一个值赋值给另一个变量

a()     # 函数调用 func()

1.3。要素名はのコンテナとして使用することができます

def func1():   
    print("呵呵")
def func2():   
    print("呵呵")
def func3():   
    print("呵呵")
def func4():  
     print("呵呵")

lst = [func1, func2, func3]
for i in lst:  
     i()

1.4。関数名は別の関数の引数として使用することができます

def func():   
    print("吃了么")
def func2(fn):   
    print("我是func2")   
    fn()    # 执行传递过来的fn   
    print("我是func2")
func2(func)     # 把函数func当成参数传递给func2的参数fn.

1.5。名前は、戻り値として別の関数とすることができます

def func_1():   
    print("这里是函数1")   
    def func_2():       
        print("这里是函数2")   
    print("这里是函数1")   
    return func_2
fn = func_1()  
# 执行函数1.  函数1返回的是函数2, 这时fn指向的就是上面函数2
fn()    # 执行func_2函数

おすすめ

転載: www.cnblogs.com/zhangchaoyin/p/11221131.html