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

def my_func(param1, param2):
    # stuff

但是,您实际上并没有给出这些参数的类型.另外,如果我没记错的话,Python是一种强类型语言,因此,Python似乎不应该允许您传入与函数创建者期望的类型不同的参数.然而,Python如何知道函数的用户传入了正确的类型呢?假设函数实际上使用了该参数,如果类型错误,程序会死吗?您需要指定类型吗?

推荐答案

Python是强类型的,因 for each 对象has都是类型,每个对象knows都是它的类型,不可能意外地或故意地使用类型的对象,就好像它是different类型的对象一样,并且对象上的所有基本操作都被委托给它的类型.

这与names无关.Python中的name没有"类型":如果定义了一个名称,则该名称指的是object,而object有一个类型(但事实上,这并不强制name使用类型:名称就是名称).

Python语言中的名称可以很好地在不同的时间引用不同的对象(就像在大多数编程语言中一样,尽管不是全部)--而且对名称没有任何限制,如果它曾经引用过X类型的对象,那么它就永远被限制为只引用X类型的其他对象.names上的约束不是"强类型"概念的一部分,尽管一些static类型的爱好者(其中名称do受到约束,并且在静电编译时也是如此)确实误用了这个术语

Python相关问答推荐

将从Python接收的原始字节图像数据转换为C++ Qt QIcon以显示在QStandardProject中

绘制系列时如何反转轴?

数字梯度的意外值

如何获取TFIDF Transformer中的值?

使用groupby Pandas的一些操作

对所有子图应用相同的轴格式

如何创建一个缓冲区周围的一行与manim?

优化器的运行顺序影响PyTorch中的预测

joblib:无法从父目录的另一个子文件夹加载转储模型

删除marplotlib条形图上的底边

Python列表不会在条件while循环中正确随机化'

Django—cte给出:QuerySet对象没有属性with_cte''''

如何从列表框中 Select 而不出错?

如何创建引用列表并分配值的Systemrame列

基于Scipy插值法的三次样条系数

循环浏览每个客户记录,以获取他们来自的第一个/最后一个渠道

Tensorflow tokenizer问题.num_words到底做了什么?

获取PANDA GROUP BY转换中的组的名称

提取数组每行的非零元素

如何将泛型类类型与函数返回类型结合使用?