有关Python函数声明的一些细节
我们都知道用def
声明函数,这里说几个很少注意的细节。
指定类型
Python不同于C语言,声明函数无需严格指定参数和返回值的类型,若需要指定可以用以下方法
def LL2UTM(Lat: float, Lon: float)->(float,float):
x,y = 0,0
pass
return float(x),float(y)
运行时可在LL2UTM.__annotations__
中查看类型声明
>>> LL2UTM.__annotations__
{'Lat': <class 'float'>, 'Lon': <class 'float'>, 'return': (<class 'float'>, <class 'float'>)}
需要注意的是,这里的“指定”更多意义上是推荐而非强制,部分IDE可能会给出高亮提示,而解释器不会检查类型是否正确。
说明文档
声明函数的第一个字符串会被视作函数的文档,保存在函数的__doc__
变量中,悬停时可以显示,甚至支持少量markdown语法。
通常简要说明函数作用,参数含义和返回类型
def LL2UTM(point: np.ndarray)->(np.ndarray):
'''
Convert (Lat,Long) to UTM coords.
return `np.ndarray([UTMeasting, UTMnorthing])`
East Longitudes are positives, West Longitudes are negative.
North latitudes are positives, South latitude are negative.
'''
...