不在你最疯狂的梦想中。
#!/usr/bin/python
counter = 100 # An integer assignment
miles = 1000.0 # A floating point
name = "John" # A string
print counter
print miles
print name
counter = "Mary had a little lamb"
print counter
当您运行时,您会看到:
python p1.py
100
1000.0
John
Mary had a little lamb
当任何语言允许您将变量的内容从整数切换到字符串时,您都无法想象任何语言是“类型安全的”,而无需付出任何巨大的努力。
在专业软件开发的现实世界中,我们所说的“类型安全”是编译器会捕获愚蠢的东西。是的,在 C/C++ 中,您可以采取非常措施来规避类型安全。你可以声明这样的东西
union BAD_UNION
{
long number;
char str[4];
} data;
但是程序员必须加倍努力才能做到这一点。在 python 中,我们不需要额外的英寸来处理计数器变量。
程序员可以在 C/C++ 中使用强制转换做一些讨厌的事情,但他们必须故意这样做;不是偶然的。
一个真正让你着迷的地方是班级选角。当您使用基类参数声明函数/方法然后将指针传递给派生类时,您并不总是获得所需的方法和变量,因为方法/函数需要基类型。如果您在派生类中覆盖任何内容,则必须在方法/函数中考虑它。
在现实世界中,“类型安全”语言有助于保护程序员免于意外地做愚蠢的事情。它还保护人类免于死亡。
考虑使用胰岛素或输液泵。以所需的速率/间隔将有限量的挽救生命/延长生命的化学物质泵入人体的东西。
现在考虑当有一个逻辑路径具有泵步进控制逻辑试图将字符串“insulin”解释为要管理的整数量时会发生什么。结果不会好。很可能会是致命的。