В приведенном ниже примере force
должен изменить значение параметра x
функции double
. ValidateAndCast
проверяет данный параметр и приводит его в соответствие. Таким образом, в этом случае, после возврата force
, x
должно быть 2
, и, следовательно, возвращаемое значение double
должно быть 4. Предположим, что все изменения выполняются в функции force
.
Как мне этого добиться? До сих пор я изучал inspect
и продолжу изучение.
def is_number(x):
try:
float(x)
return True
except:
return False
def to_int(x):
return int(float(x))
def double(x):
force(x=ValidateAndCast(is_number, to_int))
return x * 2
x = '2.54'
y = double(x)
print(y)