python不倾向于对变量的类型做隐式转换,根据定义可以判定是一门强类型语言。
Python很少会隐式地转换变量的类型,java、.NET、C/C++等都是强制类型定义的。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。
一般而言,在编译期就确定变量类型的是静态类型语言,在运行期才确定变量类型的则是动态类型语言。
例如,某些语言中定义函数“int func(int a){…}”,在编译时就能确定知道它的参数和返回值是int类型,所以是静态类型;而典型如Python,定义函数时写“def func(a):…”,并不知道参数和返回值的类型,只有到运行时调用函数,才最终确定参数和返回值的类型,所以是动态类型。
Python是弱类型。。。。说Python是强类型的,完全是在忽悠人。网上常常出现说Python是强类型的说法:由于 "1"+1 会报错,所以Python是强类型。。
完全是扯淡。。。JAVA,C#输入"1"+1,都会输出"11"。。。难道JAVA和C#都是弱类型?JAVASCRIPT输入"1"+1会报错,难道JS却成了强类型?
判断一门语言是不是强类型。。。例子应该如此:
java的例子(强类型):
int a=1
a="1" //报错
C#的例子(强类型):
int a=1
a="1"//报错
JS的例子(弱类型):
var a=1
a="1" //不报错
PHP的例子(弱类型):
$a=1
a="1"//不报错
所以,Python显然是弱类型。