For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
python编程开发语言是目前大多数软件开发程序员都在学习的一个编程开发语言,而今天我们就通过案例分析来了解一下,python编程开发常见问题都有哪些。
1、动静类型与强弱类型
很多读者应该都熟悉动态类型与静态类型,但是很多人也会把它们跟强弱类型混为一谈,所以我们有必要先作一下概念上的澄清。
这两组类型都是针对于编程语言而言的,但关注的核心问题不同。
对于“动静类型”概念,它的核心问题是“什么时候知道一个变量是哪种类型”?
一般而言,在编译期就确定变量类型的是静态类型语言,在运行期才确定变量类型的则是动态类型语言。
例如,某些语言中定义函数“intfunc(inta){...}”,在编译时就能确定知道它的参数和返回值是int类型,所以是静态类型;而如Python,定义函数时写“deffunc(a):...”,并不知道参数和返回值的类型,只有到运行时调用函数,才终确定参数和返回值的类型,所以是动态类型
对于“强弱类型”概念,它的核心问题是“不同类型的变量是否允许隐式转化”?
一般而言,编译器有很少(合理)隐式类型转化的是强类型语言,有较多(过分)隐式类型转化的是弱类型语言。
例如,Javascript中的"1000"+1会得到字符串“10001”,而"1000"-1则会得到数字999,也就是说,编译器根据使用场合,对两种不同类型的对象分别做了隐式的类型转化,但是相似的写法,在强类型语言中则会报类型出错。
2、Python是不是强类型语言?
关于“Python是否属于强类型”话题,在主流观点之外,还存在着不少误解的看法。
一方面的原因有些人混用了强弱类型与动静类型,这有历史的原因,前面已经分析了。
另外还有一个同样重要的原因,即有人把弱类型等同于“完全没有隐式类型转换”了,这种想法并不对。
事实上,强弱类型的概念中包含着部分相对主义的含义,强类型语言中也可能有隐式类型转换。
比如,Rust语言为了实现“内存安全”的设计哲学,设计了很强大的类型系统,但是它里面也有隐式类型转换(自动解引用)。
问题在于:怎么样的隐式类型转换是在合理范围内的?以及,某些表面的隐式类型转换,是否真的是隐式类型转换?
也就是说,数字间的算术运算操作,其实是一个函数调用的过程,跟其它语言中的算术运算有着本质的区别。
另外,不同的数字类型虽然在计算机存储层面有很大差异,但在人类眼中,它们是同一种类型(宽泛地分),所以就算发生了隐式类型转换,在逻辑上也是可以接受的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。