2017-04-06 92 views
-1

我正在研究關於函數的Python課程。 我創建了一個簡單的平方根函數:你如何定義一個函數來返回兩個函數的總和?

def sqrt(x): 
    return x ** 0.5 

print(sqrt(9)) 

現在,我想創建可撥打開方(作爲參數)的函數兩次:

def add_function(func, x): 
    return((func, x) + (func, x)) 

    print(add_function(sqrt, 9)) 

然而,這得到了語法錯誤。在我看來,add_function應該返回sqrt函數與參數9添加到相同。

我正在尋找一些啓示。

+0

你是什麼意思「並稱」?向我們展示預期的輸出。 –

+3

'(func,x)'不是你如何調用一個函數。 – user2357112

+0

谷歌爲關鍵字高階功能或可能*功能是第一類公民*。 – sascha

回答

3

我懷疑這是你想要的:使用FUNC變量任何函數傳遞在調用

def sqrt(x): 
    return x ** 0.5 

def add_function(func, x): 
    return func(x) + func(x) 

print(sqrt(9)) 
print(add_function(sqrt, 9)) 

輸出:

3.0 
6.0 
+1

感謝您的回答@Prune!這是我正在尋找的。要明確,在這種情況下,** func **只是一個任意的詞,或者是一個用於調用函數的Python標準?我是一般的編碼新手,所以我非常感謝您回答這個低級問題。 – pjsansman

+1

這只是參數的名稱。將它命名爲* foo *(或其他有效的東西;根據python規則對變量名或陰影內置函數有效,也許我在這裏使用了錯誤的術語),然後重試! – sascha

+2

@pjsansman你可以給你的變量命名。 Python不會阻止你。但是,有一個稱爲[PEP8](https://www.python.org/dev/peps/pep-0008/)的標準,它是Python代碼的標準樣式指南。它應儘可能地儘可能地遵守。 –

相關問題