如何从函数返回全局变量
你好,
我正在尝试根据图像文件的名称提取坐标。我创建了一个使用函数执行此操作的脚本:
选择 | 换行 | 行号
- def lat(dd):
- global lat
- lat_lon = dd.split('_')[1]
- if 'N' in lat_lon:
- lat = int(lat_lon[1:3])
- else:
- lat = int(lat_lon[1:3]) * -1
- def lon(dd):
- global lon
- lat_lon = dd.split('_')[1]
- if 'W' in lat_lon:
- lon = int(lat_lon[4:]) * -1
- else:
- lon = int(lat_lon[4:])
- list = ['ASTMGTM2_N37W110', 'ASTMGTM2_N45E80']
- for n in list:
- lat(n)
- lon(n)
- print lat, lon
对于列表中的第一个值,脚本运行正确。它返回'37-110'。但是,当它达到第二个值时,我会收到一个错误:
TypeError:'int'对象不可调用
有人知道我做错了什么吗?我是新手,以前从未真正使用过'global'变量。
我还尝试使用'Return'关键字而不是全局变量:
选择 | 换行 | 行号
- def lat(dd):
- lat_lon = dd.split('_')[1]
- if 'N' in lat_lon:
- lat = int(lat_lon[1:3])
- return lat
- else:
- lat = int(lat_lon[1:3]) * -1
- return lat
- def lon(dd):
- lat_lon = dd.split('_')[1]
- if 'W' in lat_lon:
- lon = int(lat_lon[4:]) * -1
- return lon
- else:
- lon = int(lat_lon[4:])
- return lon
- list = ['ASTMGTM2_N37W110', 'ASTMGTM2_N45E80']
- for n in list:
- lat(n)
- lon(n)
- print lat, lon
这没有错误,但我无法获得数值。我收到:
我目前使用的是64位的Python2.6和Windows7。谢谢你的帮助!