除非我弄错了,否则在 Python 中创建函数的工作方式如下:
def my_func(param1, param2): # stuff
但是,您实际上并没有给出这些参数的类型。另外,如果我记得,Python 是一种强类型语言,因此,Python 似乎不应该让您传入与函数创建者预期不同类型的参数。然而,Python 是如何知道函数的用户传递了正确的类型呢?假设函数实际使用参数,如果类型错误,程序会死吗?必须指定类型吗?
Python 是强类型的,因为每个对象 都有 一个类型,每个对象都 知道 它的类型,不可能意外或故意使用一个类型的对象,“好像”它是一个 不同 类型的对象,并且对对象的所有基本操作都是委托给它的类型。
这与名称 无关。Python 中的 名称 没有“类型”:如果定义了名称,则该名称指的是一个 对象 ,并且该 对象 确实具有类型(但这实际上并不强制 名称 上的类型:a name 是一个名字)。
Python 中的名称可以很好地在不同时间引用不同的对象(就像在大多数编程语言中一样,但不是全部)——并且名称没有任何限制,因此,如果它曾经引用过 X 类型的对象,然后它永远被限制为仅引用 X 类型的其他对象。 名称 的约束不是“强类型”概念的一部分,尽管一些 静态 类型的爱好者(名称 确实 受到约束,并且在静态的 AKA 编译中 - time,fashion,也是)这样误用了这个词。