Python本就是弱类型。。。说Python是强类型,不过是一群初学者不懂装懂,互相洗脑而已。
强类型(JAVA,C#,C++):
int a=1;
a=“1”; //报错
弱类型(JS,PHP,PYTHON)
var a=1; //JS
$a=1; //php
a=1 # python
a="1"; //不报错
以上为修改前的回答,一字未改。且本人不觉得这个答案有任何问题。
但由于有很多人评论喷我的答案,并对我进行人身攻击,因此特来做出下列补充,并摘抄书中原文作为佐证。
动态类型和静态类型,决定一个程序是在执行时确定数据类型,还是执行前确定数据类型。
Python的变量全是引用类型,堆中的数据确实没有被修改,被修改的是栈中的地址,但这和它是弱类型,本就是两码事。
以下内容,摘自<>原文,原作者为C++标准制定委员会创始成员,MindView公司的CEO。为确保人人都看得懂,故引用机械工业出版社出版的中文版本:Python是弱类型检查的,它不关注接口,只关注把操作施加于对象(Java的interface关键字在Python中多余)。这意味着Python的继承和C++/Java是不同的,它们的继承是为了确认一个公共接口。在Python中,你使用继承的唯一原因是你需要继承一个实现--为了重用基类已有代码(而非定义统一接口,译者注)。
以上为《Thinking in Python》书中原文。如有任何疑议,请自行查阅原书。
或者百度搜索“与Python之父的对话:Python的成功之路”,里面Python的作者曾亲口说过,Python是弱类型。