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