Comme ruby, comment passer le bloc de code et le faire exécuter (rendement) où vous le passez. J'essaye d'accomplir la même chose dans python 3.5 C'est à quoi ressemble mon code pseudo. Comment réaliser ce que j'essaie de faire. Quels changements devrais-je faire?Comment faire Python méta programmation pour passer des blocs de code autour (comme le rendement Ruby)
# Calculate all
# I want this function should yield whatever method passed to it
# THIS MUST BE A CLASS
class Calculator:
def __init__(self):
self.prefix = "hello"
def calculate(self, function_name)
local_val = 10
print("executing {} function with {}".format(function_name, self.prefix))
result = function_name(local_val)
print(result)
return result
# I want to pass these functions to Calculator().calculate() method
def add_one(x):
return x+1
def minus_one(x):
return x-1
def divide_in_half(x):
return x/2
Calculator().calculate(add_one(?))
# expect this to print:
# executing add_one function with hello
# 11
Calculator().calculate(minus_one(?))
# expect this to print:
# executing minus_one function with hello
# 9
Calculator().calculate(divide_in_half(?))
# expect this to print:
# executing divide_in_half function with hello
# 5
Il semble que votre 'Calculator' n'a pas besoin d'être une classe du tout ... –