В приведенном ниже примере 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)