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是对象(此处非常自由地使用术语“对象”),其:
- 可以用作参数
- 可以用作返回值
- 可以指定给变量
- 可以存储在数据结构中,如哈希表、列表等
知道了这一点,
这是另一个示例(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')
输出:你好
你好
您好,我是由作为参数传递的函数创建的。
您好,我是由作为参数传递的函数创建的
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