有什么方法可以在Python中传递块参数而无需先将其定义为函数吗?

问题描述 投票:0回答:1

在Ruby中,块参数的工作方式如下:

def method (&block)
    block.call(4)
end
method do |x|
    puts x
end
# 4

我已经在Python中看到以下“等价”,但是我发现它并不令人满意,因为它需要定义函数并且只有这样将该函数作为参数传递:

def method(block):
    block(4)

def call(x):
    print(x)

method(call) # 4

Python中是否有其他替代方法,不需要先定义函数?

python arguments block
1个回答
1
投票

[不,Python不允许使用这种语法糖。它没有匿名函数;它提供的最接近的是,但是它们有很多限制,即它们只能有一个表达式,即一个“行”代码。 使用def定义函数是创建可重用代码块的Python方法。

© www.soinside.com 2019 - 2024. All rights reserved.