def example(function):
if input() == "Hello there!":
#at this point I want to call the function entered in the tuples
我的意思的一个例子:
def example(function):
if input() == "Hello there!":
#do the function here
def Printer(What_to_print):
print(What_to_print + "Just an example")
example(Printer)
这是否可能,并且这样做有缺点吗?
答案 0 :(得分:0)
在python中,函数是像任何其他常见类型一样的对象,如int
和str
。因此,接收另一个函数作为参数的函数没有问题。
>>> def pr(): print ('yay')
>>> def func(f): f()
>>> isinstance(pr, object)
True
>>> isinstance(int, object)
True
>>> func(pr)
yay
>>>
答案 1 :(得分:0)
是。这是可能的。
def example(function):
if input() == "Hello there!":
function("Hello there!") # invoke it!
实际上,您可以将def
函数和lambda
函数作为参数传递,并通过()
语法调用它们。
答案 2 :(得分:0)
def example(function, what_to_print):
if raw_input() == "Hello there!":
function(what_to_print)
def printer(what_to_print):
print(what_to_print + "Just an example")
example(printer, "")