在Fortran中,subroutine
可以修改输入的任何变量(只要它有intent(INOUT)
)。请考虑以下代码:
program example
implicit none
integer:: i, j, k, l
i = 1
j = 2
k = 3
l = 4
call swap(i,j)
print*, i, j
call swap(k,l)
print*, k, l
contains
subroutine swap(a,b)
integer, intent(INOUT) :: a, b
integer :: aux
aux = a
a = b
b = aux
end subroutine
end program example
输出:
2 1
4 3
所以我的问题是如何在Python中实现相同的目标?在Python中,函数内的局部变量不会影响全局变量,在函数内定义global my_variable
会将单个变量硬编码到该函数。