Python:更改变量的数据类型

时间:2012-12-11 17:22:30

标签: c++ python c

我是Python的新手,我发现这很奇怪(而且很神奇)。谁能解释一下?

a = 2.0
b = 3.1
if b==3.1:
    print "%f"%a
    a = "Hi!"
    print "%s"%a
print "%s"%a


Output:
2.000000
Hi!
Hi!

a的类型如何从float更改为string? 如何在C / C ++中完成类似的事情?

2 个答案:

答案 0 :(得分:7)

Python是一种dynamically typed语言,这意味着相同的变量可以引用不同类型的对象。 C,C ++和Java等语言是statically typed,这意味着类型是在编译时确定的。

在支持面向对象编程的静态类型语言(如C ++)中,您可以使用继承和多态(基类指针)来引用不同子类类型的多个对象,但它不像“{”那样灵活。 {3}}“你得到了Python。

在C和C ++中,您还可以使用通用void*指针指向任何类型的对象,但是会丢失编译器提供的duck typing

答案 1 :(得分:3)

Python是动态类型的。没有类型声明,任何名称都可以随时引用任何值。

静态类型语言(如C和Java)将类型分配给变量,将错误类型的值分配给名称是错误的。 Python没有这样的限制。