python和传统的 C/C++、Java、C# 等语言相比,Python 对代码格式的要求没有那么严格,这种宽松使得用户在编写代码时比较舒服,不用在细枝末节上花费太多精力。我来举两个典型的例子:
Python 不要求在每个语句的最后写分号;
定义变量时不需要指明类型;
编写代码时候的舒服却伴随着阅读和维护代码的困难和痛苦,比如在调试代码的时候,很多时候都需要搞清楚变量的类型,**编写代码的时候也没有标注清楚变量的类型,**这就给项目的维护造成了很大的困难。所以反观一下Java等强类型语言,就没有这些问题。
为什么要注明变量类型?
- 注明变量类型后,可以在IDE中方便的该类型的属性和方法,便于开发。
如图:
不注明参数的类型,在编码的时候不会提示其属性和方法。
注明参数的类型,在编码的时候会提示其属性和方法,方便编码。
2.注明方法的变量类型,方便代码的阅读和维护。
如何使用?①在写声明变量:
a :type = value
②在写方法的时候,注明变量的类型,以及其返回值。
基本用法如下:
def func(a:int,b:str,c:list)->(result....) 示例几种情况: # 有返回值: def sum(a:int,b:int)-> int: return a+b #无返回值: def print_value(a:int,b:int)-> None: print(f"a={a} b={b}") # 多返回值: def exchange(a:int ,b:int)->(int,int): a,b = b,a return a ,b
笔者认为python的灵活简单是它的优点,但也是它的缺点。正是因为灵活简单使得python简单易学,但是在维护和学习他人代码的时候总感觉不舒服。
希望python coder 能养成好的编码习惯。本文只是简述类型注解的基本用法,还有更多的用法在typing包中,例如方法参数可选带默认值等。之后笔者会出一篇文章。
题外话,在Golang中 函数的用法和注明变量类型和返回值的Python的代码。大家习惯了本文中的类型注解等于学会了Go方法的编写。
//Golang func 函数名(参数 类型) 返回值 func sum(a int,b int)int { return a+b } # python def sum(a:int,b:int)-> int: return a+b
欢迎关注公众号:码上小佰,获取更多干货文章。
天冷了,穿件格子外套!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)