Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的第一类函数是什么_Python_Function_First Class Functions - Fatal编程技术网

Python中的第一类函数是什么

Python中的第一类函数是什么,python,function,first-class-functions,Python,Function,First Class Functions,我仍然对什么是一流函数感到困惑。如果我理解正确,一级函数应该使用一个函数作为对象。这是正确的吗 这是一个一流的功能吗 def this_is_example(myarg1): return myarg1 def this_is_another_ example(myarg): return this_is_example(myarg)+myarg this_is_another_ example(1) 一级函数不是一种特殊的函数。Python中的所有函数都是一流函数。在某

我仍然对什么是一流函数感到困惑。如果我理解正确,
一级函数
应该使用一个函数作为对象。这是正确的吗

这是一个一流的功能吗

def this_is_example(myarg1):
    return myarg1

def this_is_another_ example(myarg):
     return this_is_example(myarg)+myarg

this_is_another_ example(1)

一级函数不是一种特殊的函数。Python中的所有函数都是一流函数。在某种编程语言中,函数是一流的,这意味着它们可以像传递和操作其他类型的对象(如整数或字符串)一样进行传递和操作。您可以将函数指定给变量,将其作为参数传递给另一个函数,等等。区别不在于单个函数是否可以是第一类,而在于整个语言可以将函数视为第一类对象,也可以不将函数视为第一类对象。

“第一类函数”(FCF)是被视为所谓的函数“一等公民”(FCC)。编程语言中的FCC是对象(此处非常自由地使用术语“对象”),其:

  • 可以用作参数
  • 可以用作返回值
  • 可以指定给变量
  • 可以存储在数据结构中,如哈希表、列表等
实际上,非常粗略和简单地说,FCF是“函数”类型的变量(或指向函数的变量)。你可以用“普通”变量做任何事情


知道了这一点,
这是另一个示例(myarg)
这是另一个示例(myarg1)
是第一类函数,因为在某些编程语言中,所有函数都是第一类的。

python中的每个函数都是第一类的,因为它们可以像任何其他对象一样传递。

不是。你说的是高阶函数--

第一类函数:如果一个函数可以指定给一个变量或作为对象/变量传递给其他函数,则该函数称为第一类函数

Python、JavaScript和C(指针)支持第一类函数

一个简单的示例(在python中):

这个程序只是为了举例说明

def pie(r):
    def circleArea(d):
        return r * (d ** 2)
    return circleArea

c = pie(3.14)
print c(2)

上面是python中第一类函数的示例。

python中的第一类函数

语言中的第一类对象在整个过程中都是统一处理的。 它们可以存储在数据结构中、作为参数传递或在 控制结构。据说一种编程语言支持 如果将函数视为一级对象,则为一级函数。 Python支持第一类函数的概念

第一类函数的属性:
函数是对象类型的实例。
-可以将函数存储在变量中。 -可以将函数作为参数传递给另一个函数。 -您可以从函数返回函数。 -您可以将它们存储在数据结构中,如哈希表、列表等

演示Python中第一类函数的示例
1.函数是对象:Python函数是一类对象。在下面的示例中,我们将函数赋值给一个变量。此赋值不调用函数。它接受由shout引用的函数对象,并创建指向它的第二个名称,即yell



    # Python program to illustrate functions
    # can be treated as objects
    def shout(text):  
        return text.upper()      
    print shout('Hello') 
    yell = shout 
    print yell('Hello')

输出:
你好
你好

  • 函数可以作为参数传递给其他函数:因为函数是对象,所以我们可以将它们作为参数传递给其他函数。可以接受其他函数作为参数的函数也称为高阶函数。在下面的示例中,我们创建了一个函数,它将函数作为参数
  • 输出:
    您好,我是由作为参数传递的函数创建的。
    您好,我是由作为参数传递的函数创建的

  • 函数可以返回另一个函数:因为函数是对象,所以我们可以从另一个函数返回函数。在下面的示例中,create_adder函数返回adder函数
  • 输出:

    25 Python中的一流函数:

    “一级”概念只与编程语言中的函数有关。一级函数意味着语言将函数视为值,即可以将函数赋给变量、传递函数等。在引用函数时很少使用,例如“一级函数”更常见的说法是“一种语言有/没有一流的功能支持”。因此,“有一流的功能”是一种语言的属性

    第一类函数的属性:

    • 函数是对象类型的实例
    • 可以将函数存储在变量中
    • 可以将函数作为参数传递给另一个函数
    • 您可以从函数返回函数
    • 您可以将它们存储在数据结构中,如哈希表、列表等

    因此,支持带有函数类型的值并将其视为非函数值的语言可以说具有“一流函数”。

    这是一个很好的示例,可以用经典形式说明Python一流函数:一个变量包含lambda函数

    twice = lambda x: 2 * x
    d = twice(5)
    print(d)  # 10
    

    C真的把函数当作一等公民吗?想在C中添加一个例子吗?@ypercubeᵀᴹ 我不是C语言的人。对此我很抱歉。但我确实记得你可能会传递指向函数调用的指针。虽然我不确定。这似乎是一个副本:。但仍然是一个有用的解释!youtube上解释得很好的链接:
    
    
        # Python program to illustrate functions
        # can be passed as arguments to other functions
        def shout(text):
            return text.upper()
        def whisper(text):
            return text.lower()
        def greet(func):
            #storing the function in a variable
            greeting = func("Hi, I am created by a function passed as an argument.")
            print greeting     
        greet(shout)
        greet(whisper)
    
    
    
    
        #Python program to illustrate functions
        #Functions can return another function    
        def create_adder(x):  
            def adder(y):  
                return x+y  
            return adder  
        add_15 = create_adder(15)
        print add_15(10)
    
    
    twice = lambda x: 2 * x
    d = twice(5)
    print(d)  # 10