为什么Python不需要类型声明?不声明类型的优点是什么?
如果我们非常清楚变量或参数的类型,为什么不直接声明它们呢?
我想知道这样做有什么不好或者不必要的原因。
抱歉,我刚学Python大约一年,之前用过C、VB、VB.NET和C#这些编程语言。
在使用Python时,我希望能在编译时就能发现参数类型的问题。
我还希望有一个IDE(集成开发环境)能在设计时给我建议,告诉我变量的每个属性。也许我太习惯微软的方式了,但对我来说,声明变量类型似乎是最基本的做法。
4 个回答
4
这就是动态语言的特点。
静态类型是Java和C#这类语言的风格。(而且现在C#也可以用var来自动推断类型。)
这是一种权衡:你是在用类型安全换取运行时的灵活性。
4
Python使用动态类型(准确来说是“鸭子类型”),所以你不需要提前声明一个变量。这是一种编程风格和方法,是Python开发者选择的。作为一种高级语言,这种方法符合Python让代码易于阅读的理念。
还有其他语言也采用这种方法,比如PHP。
11
你一定知道 +
这个功能。那么,它的类型是什么呢?是数字吗?其实,它不仅可以用在数字上,还可以用在列表和字符串上。甚至对于那些定义了 __add__
的对象,它也能工作。在某些情况下,当一个对象定义了 __radd__
时,它也能正常使用。
所以,要判断这个功能的类型其实很难。不过,Python 还允许在运行时定义这些方法,比如通过描述符或者元类。你甚至可以根据用户的输入来定义它们!
因为 Python 的动态性非常强,所以 Python 编译器在执行程序之前,根本无法确定任何东西的类型(除了字面量)。即使你写了类型注解,也没有什么用,类型检查仍然是在运行时进行的!