回答
因爲函數調用的返回值在語義上與參數不同。 raw_input()返回一個字符串;一個參數必須是傳入的值的標識符。
您不能。
順便說一句,你可能誤認爲使用命名參數可以工作:
def func(s=raw_input()):
print(s)
func()
func()
那麼唯一的問題是,它只是似乎工作。第一次調用func()
時,s
通過提示您輸入字符串進行評估。
第二次,s
的默認值是已知的,並且不會提示您。
'def func(s = raw_input):return s()'? –
這將工作!但你也可以'返回raw_input()'。我只是指出,你不應該強制python做這樣的東西:) –
哦,我同意這樣做是愚蠢的做任何一種方式:)並且最好將'raw_input()'綁定到函數內的名字。 –
試試這個奇怪的OOP解決方案。
class Runnable:
def __init__(self,function, *args, **kwargs):
self.function = function
self.args = args
self.kwargs = kwargs
def run(self):
return self.function(*self.args, **self.kwargs)
Runnable
加載了一個功能和參數的對象。 .run()
在您準備就緒時執行。
下面是它的用法:
def func(runnable_thing):
print(runnable_thing.run())
super_raw = Runnable(raw_input, "Please Type your Input: ")
func(super_raw) # prints input from raw
很酷的事情是,運行的類我做了其他功能的作品具有較大PARAMS爲好。
import datetime
foo = Runnable(datetime.datetime, 2016, 12, 15) ## foo is not yet a datetime object
bar = foo.run() ## bar is a datetime object
如果你不是在它結束的.run()
的粉絲,那麼我們可以按照Deloith's建議使用__call__()
使Runnable的感覺像一個功能。
class Runnable:
def __init__(self,function, *args, **kwargs):
self.function = function
self.args = args
self.kwargs = kwargs
def __call__(self):
return self.function(*self.args, **self.kwargs)
從這一刻起,它確實感覺就像我們已經創建了一個新功能。
def func(runnable_thing):
print(runnable_thing())
super_raw = Runnable(raw_input, "Please Type your Input: ")
func(super_raw) # prints input from raw
試試這個尺寸,讓我知道你喜歡它。
- 1. python訪問raw_input的值作爲參數
- 2. 在python中使用raw_input作爲列表
- 3. 如何讓Python使用raw_input值作爲定點數?
- 4. 使用Distinct作爲參數
- 5. 使用Javascript'this'作爲參數
- 6. 使用自作爲參數
- 7. 使用AutoCompleteComboBox作爲參數
- 8. 使參數作爲參考
- 9. 使用數組作爲函數參數
- 10. 使用數組作爲函數參數
- 11. 使用raw_input處理
- 12. int in raw_input不起作用
- 13. raw_input()的行爲
- 14. sql函數使用列作爲參數
- 15. 使用數組作爲參數
- 16. 使用bash數組作爲參數
- 17. 使用PySpark整數列作爲參數
- 18. 使用函數聲明作爲參數
- 19. 使用數組值作爲參數
- 20. 使用函數名稱作爲參數
- 21. 使用指針作爲函數參數
- 22. 使用Deque.popleft作爲函數的參數
- 23. 使用二維數組作爲參數
- 24. 使用函數作爲關鍵參數
- 25. 使用枚舉作爲函數參數
- 26. 使用函數指針作爲參數
- 27. java使用函數作爲參數
- 28. 使用數組作爲參數來
- 29. 使用ostream作爲函數參數
- 30. powershell使用數組作爲參數
你想要完成什麼?您發佈的代碼在語義上不一致。 – Prune
我不想完成任何事情。我正要去看Zed的「以艱難的方式學習Python」,在閱讀函數和參數時我想到了這一點。 –
如果代碼有效,您會期望代碼如何執行?如果這意味着「在調用此函數時獲取原始輸入作爲參數」,那麼**如何引用輸入的字符串?** –