你能详细说明Python中“块”(在Ruby意义上)的当前状态吗?
Python中存在哪些语言结构?他们如何与其他语言(如Ruby,Smalltalk,[插入更多])进行比较?或者Python缺乏这样的结构?
到目前为止,我已经理解了lambda
的事情;它只是单行,但也许它接近。在这种情况下,“装饰者”和yield
怎么样?
我也在一些项目中使用旧的Python版本。在Python版本(2.5,2.6等)或未来版本中计划引入哪些结构?
你能否链接有关这个主题的有趣文章,这些文章解释了Python的这些内容,并且还与其他语言进行比较,对于想要扩展基本Python知识的人来说可能很有意思?
答案 0 :(得分:10)
函数是Python中的第一类成员:
def add(x, y):
return x + y
a = add # Bind
b = a(34, 1) # Call
所以你可以传递你想要的所有功能。您可以对Python中的任何可调用对象执行相同的操作。
答案 1 :(得分:3)
lambda
是与Ruby块最接近的等价物,以及对一行is intentional的限制。通常认为多行匿名函数(在Ruby中的块)通常可读性低于使用名称定义函数并传递它的可读性,如SilentGhost's answer中所示。
答案 2 :(得分:3)
comp.lang.python与其他语言相比有很好的讨论:
答案 3 :(得分:0)
def
等同于赋值语句,它只将函数对象绑定到对象引用变量。
然后可以使用对象引用变量来调用要执行的函数对象。