我最近更新了一本关于Python的书,详细介绍了Python能够动态地重新赋值变量类型(int,str,float等),这是Python的一部分。的优点(据我所知)。
但是,在其他编程语言中并非如此,例如C和Java。据我所知,您必须首先声明变量所在的变量类型,例如int或str,然后然后分配其值。
有没有办法重新分配该变量的类型,比如你是否要首先删除它的值?
答案 0 :(得分:2)
C变量可以容纳的值的类型是该变量的固定特征。更一般地,C中的每个表达式都具有可以仅基于包含程序的源代码确定的数据类型。 C具有将值从一种类型转换为另一种类型的机制,但这是一种不同的野兽。 (另外,“转换”一个值应理解为接受输入值并产生不同输出值的操作,而不是就地修改单个值。同样的区别也适用于Python。)
C还支持为不同类型的成员值提供重叠存储的数据类型(“联合”)。可以认为具有这种类型的变量能够在不同时间包含不同类型的值。它们可以包含的特定类型是预先指定的,但不能更改。
另一方面,在Python中,数据类型不是变量的特征,但它仍然是值的特征。每个Python值都有一个永不改变的特定类型,但您可以使用不同类型的值替换变量的值。
答案 1 :(得分:1)
C和Java都是强类型语言。一旦定义了类型,它就不会改变。因此,编译器能够在所有表达式中执行类型检查,以确保正确的类型用于它所在的上下文。
有些情况下你可以使用类型转换来在一种类型和另一种类型之间切换,但这些是例外而不是规则。