def func(func2):
z = func2()
print z
def func2():
x = 1
y = 2
return x+y
執行 func() 可得 func2() 執行結果
但是函式也有可能接收不同的參數,
而要了解 Python 中 arguments 的傳遞方式,先參考這篇 What do *args, **kw, **kwargs Mean? 及 Python Doc 的 Keyword Arguments
函式的參數傳遞可用 *args, **kw 來表示,帶有一個星號(*)的變數可以接受 tuple,而兩個星號(**)的變數可以接收 dictionary,接收到的參數也可以被記錄下來,在需要的時候使用。
class Test():
def __init__(self, func, *args, **kwargs):# 把 func 當作函式,func2 當作變數塞入 Test Class 中
self.__func = func
self.__args = args
self.__kwargs = kwargs
def execute(self):
return self.__func(*self.__args, **self.__kwargs)
t = Test(func, func2)
# 執行 func
t.execute()
得到的結果也是 3
沒有留言:
張貼留言