回答
因为函数调用的返回值在语义上与参数不同。 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”,在阅读函数和参数时我想到了这一点。 –
如果代码有效,您会期望代码如何执行?如果这意味着“在调用此函数时获取原始输入作为参数”,那么**如何引用输入的字符串?** –