函数中的Python函数

时间:2016-08-13 18:38:14

标签: python

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)

这是否可能,并且这样做有缺点吗?

3 个答案:

答案 0 :(得分:0)

在python中,函数是像任何其他常见类型一样的对象,如intstr。因此,接收另一个函数作为参数的函数没有问题。

>>> 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, "")