в Ruby аргумент блока работает следующим образом:
def method (&block)
block.call(4)
end
method do |x|
puts x
puts x * 2
end
=begin
4
8
=end
Я видел следующий эквивалент в Python, но я нахожу его довольно неудовлетворительным, поскольку он требует определения функции и толькозатем передавая его в качестве аргумента:
def method(block):
block(4)
def call(x):
print(x)
print(x * 2)
method(call)
'''
4
8
'''
есть ли в Python альтернатива этому, которая не требует, чтобы функция была определена первой?