python - Python 函数如何处理您传入的参数类型?

标签 python function parameters

除非我弄错了,否则在 Python 中创建函数的工作方式如下:

def my_func(param1, param2):
    # stuff

但是,您实际上并未提供这些参数的类型。另外,如果我记得,Python 是一种强类型语言,因此,Python 似乎不应该让您传入与函数创建者预期的类型不同的参数。但是,Python 如何知道函数的用户正在传入正确的类型?假设函数实际上使用了参数,如果它的类型错误,程序会死吗?你必须指定类型吗?

最佳答案

Python 是强类型的,因为每个对象都有一个类型,每个对象都知道它的类型,不可能意外或故意使用一个类型的对象“好像”它是一个不同类型的对象,并且对象上的所有基本操作都是委托(delegate)给它的类型。

这与无关姓名 . Python 中的名称没有“类型”:如果定义了名称,则名称指代一个对象,并且该对象确实具有类型(但这实际上并不强制名称具有类型:a名字是一个名字)。

Python 中的名称可以完美地在不同时间引用不同的对象(就像在大多数编程语言中一样,尽管不是全部)——并且对名称没有限制,如果它曾经引用过 X 类型的对象,然后它永远被限制为仅引用其他类型的 X 对象。 上的约束姓名 不是“强类型”概念的一部分,尽管 的一些爱好者静态 打字(名称确实受到限制,并且在静态中,AKA 编译时,时尚也是如此)确实会以这种方式误用该术语。

关于python - Python 函数如何处理您传入的参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489669/

相关文章:

python - PyDev 内容辅助 : 'The interpreter location found does not exist.'

c++ - 将数组传递给类函数 C++

C++11:如何编写一个像 get<tuple>... 但接收参数包的模板函数?

python - 尝试重命名 tf.keras 上的预训练模型时出错

python - 为什么即使没有要打印的数据,打印命令也会换行

python - 在 python 中使用返回的变量

web-applications - 如何在不传递 ServletContext 对象的情况下检索应用程序参数?

c# - Ubuntu终端上的.NET Core参数十进制错误

python - 使用三引号将变量值添加到字符串中

scala - 在 Scala 中定义方法的九种方法?