前言
紧接上话,我们来看看函数定义还有哪些冷知识。
类型提示
当我在看一些第三方库时,看到了如些的写法。
def add(x:int, y:int) -> int:
return x + y
这里的冒号和箭头是什么东西了,当时是很奇怪这里的写法,后面在网上查阅资料时,说是type hints,也就是类型提示。
众所周知,Python 是动态类型语言,运行时不需要指定变量类型。这一点是不会改变的,但在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型。它的主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。
很明显,这种写法易于理解代码,毕竟程序员一大半时间都在看代码,而不是写代码。
例如上面的代码,我们就知道传入的x和y是整数型,返回的也是整数型,但是我们需要注意的是,如果不按照其指定类型传入参数,代码也是不会报错的。
def add(x:int, y:int) -> int:
return x + y
value = add(1.2, 1.3)
print(value)
2.5
这是pyecharts库的部分源码,通过函数定义,我们就可以看出参数的类型。
def add_yaxis(
self,
series_name: str,
y_axis: types.Sequence[types.Union[types.Numeric, opts.BarItem, dict]],
*,
is_selected: bool = True,
xaxis_index: types.Optional[types.Numeric] = None,
yaxis_index: types.Optional[types.Numeric] = None,
is_legend_hover_link: bool = True,
color: types.Optional[str] = None,
is_show_background: bool = False,
background_style: types.Union[types.BarBackground, dict, None] = None
- series_name 默认的参数类型就是字符串
- is_show_background默认的参数类型就是布尔型,而且默认值是False
学废了吗?我们下期再见~
网友评论