Python 什么是Python中常见的编程错误或“陷阱”?

Python 什么是Python中常见的编程错误或“陷阱”?

下面是程序员经常犯的一些最常见的Python编程错误/陷阱:

作用域名称查找:Python遵循LEGB(Local,Enclosing,Global,Built-in)的作用域规则。由于Python没有严格的类型绑定,程序员可以将外部作用域变量重新关联到另一个值,该值可能在稍后的外部作用域中使用,但现在被某些其他值所取代。

区分is和=: 在Python中,is是一个操作符,它检查两个对象是否引用同一内存地址。 操作符执行__ eq__函数,该函数可能对不同类的相等性进行不同的检查。

在迭代列表时修改列表:如果在迭代列表时删除元素,将会出现IndexError。这是因为列表在缩小大小时,您没有随之缩小索引。

闭包绑定- 考虑以下代码-

阅读更多:Python 教程

示例

listLambdas = [lambda x : i + x for i in range(5)]
for lam in listLambdas:
    print(lam(10))

输出

这将给出输出-

14
14
14
14
14

震惊了吧?这是由于闭包绑定。此列表中的所有lambdas都引用变量i,即当它改变时,这些lambdas开始引用新值。

与内置名称冲突: 您可能在某个时候创建了一个名为sum的变量。请注意,在这种情况下,您重新分配了对sum函数的引用。对于这样的事情似乎微不足道,但是当以这种方式命名包时可能会导致一些严重的问题。这可能导致其他包导入您的类而不是标准包。

操作符的非直观实现:Python提供了一种在类中重载操作符函数的方法。往往人们倾向于以不常见的方式实现这些操作符,最终创建出复杂和不直观的API。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程