Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是 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变化?如何在 C/C++ 中完成类似的操作?floatstring
a
float
string
Python 是一种动态类型语言,这意味着相同的变量可以引用不同类型的对象。C、C++ 和 Java 等语言是静态类型的,这意味着类型是在编译时确定的。
在支持面向对象编程的静态类型语言中,如 C++,您可以使用继承和多态(基类指针)来引用不同子类类型的多个对象,但它不如您的“鸭子类型”灵活进入 Python。
在 C 和 C++ 中,您还可以使用泛型void*指针指向任何类型的对象,但您会失去编译器提供的类型安全性。
void*
Python 是动态类型的。没有类型声明,任何名称都可以随时引用任何值。
像 C 和 Java 这样的静态类型语言将类型分配给变量,将错误类型的值分配给名称是错误的。Python 没有这样的限制。