Python 绝对不能做的事情是什么

Python 绝对不能做的事情是什么

在本文中,我们将学习在使用Python时绝对不应该做的事情。

谨慎使用类变量

在Python中,类变量被用作字典,并被称为方法解析顺序(MRO)。此外,如果一个类缺少一个属性,那么该类就缺少一个属性。也就是说,如果你修改了一个类中的内容,其他类也不应该改变。

错误的缩进

在Python中,缩进是至关重要的。Python在在线缩进上有所利用,不像JavaC++和其他编程语言那样使用花括号来构建代码块。许多属性都受缩进的影响。一些Python缩进问题比其他问题更难检测。因此,由于许多Python功能依赖于缩进,我们应该始终保持一致的缩进风格。因此,在Python中,缩进非常重要。

最好为缩进使用 4个空格或一个制表符

区分大小写

Python是 区分大小写的 。这意味着变量 “number”“Number” 是不同的。这也是Python新手常犯的最常见的错误之一。

示例

number = 5
print(Number)

输出

Traceback (most recent call last):
  File "main.py", line 2, in 
    print(Number)
NameError: name 'Number' is not defined

修改和迭代列表

经常情况下,软件工程师在迭代列表时会犯一个常见的错误,即删除列表中的一个项。然而,Python使用独特的编程范式来解决这个问题。

当正确使用时,范式可以简化代码,确保不会意外删除和迭代任何重要的项。

变量绑定

这是学习者难以理解和欣赏的一个主题。Python支持延迟绑定。Python开发人员经常对Python如何绑定变量感到困惑。它将其变量的封闭或者环绕的全局范围绑定在一起,因此在调用内部函数时,会查找闭包中使用的变量的值。

误用 __del__ 方法

__del__ 方法只能在某些情况下使用,并不是随时都能用。否则,将抛出 “AttributeError” 异常。当调用 “del” 命令时,代码中的一个名称被设置为 “None”。相反,使用 “atexit.register()” 在关闭解释器之前启动注册的处理程序。

误用 __init__

在Python中,构造函数由一个名为 __init__ 的函数表示。当创建一个对象时,会调用 __init__ 方法,它分配内存并初始化类的属性。试图从init方法中显式返回一个值可能会生成多个错误,并导致代码中的困难。

带有默认参数的函数调用

对于初学者来说,Python中的默认参数函数是一个很棒的特性。使用参数是困难的。因为Python在声明函数时会评估默认参数中的表达式,所以必须动态生成默认参数。因此,必须小心处理这个。

误用表达式

在Python中,你可以通过给函数参数赋予默认值来使函数参数可选。然而,当你改变默认值时,这种行为可能会令人困惑。

为了防止错误使用表达式,为可选参数提供一个合适的值,因为函数参数的默认值只会被考虑一次 – 在函数被声明时。

名称冲突

Python拥有广泛的库模块,因此它为软件开发人员提供了很多东西。然而,如果你选择避开这种财富,就会冒着名称冲突的风险。当你的模块的名称与Python标准库中同名的模块混淆时,就会发生名称冲突。

因此,你可能会引入另一个库,这可能会干扰你的标准库版本的模块。因此,避免选择与Python标准库模块相似的名称。我们始终可以通过提交Python增强建议(PEP)来请求更改名称。

创建循环模块依赖

因为Python知道不要重新导入某个东西,所以最初看起来似乎循环模块依赖是安全的。然而,你可能在某个时候遇到一个 AttributeError 异常,这是不可取的。解决方案是更改一个模块,加上 a()。

不使用注释和文档字符串

代码中的注释是编程的重要组成部分。注释可以提高代码的可读性和自我解释性。如果不使用注释或文档字符串会发生什么?这可能会令人恐惧!代码可以很快从10行增长到10,000行,使得调试变得困难。因此,使用注释和文档字符串是非常有益的。

犯错误是生活和编程的自然属性。错误可能会发生,但知道可能出现什么错误以及如何修复错误是至关重要的。

没有正确指定参数

“不出所料,except语句不考虑异常列表,”技术博主Rory Barak说。“相反,异常语法将异常连接到指定的可选第二个参数。”在这之后,“IndexError”异常不会被except语句检测到,并且参数没有正确地给出。

“一个选择是将第一个参数定义为包含所有必要异常的元组,同时使用关键字“the”。

结论

通过避免这些典型的Python错误,您可以确保您的代码不仅在逻辑上是正确的,而且在长期运行中也能正常工作。始终仔细检查您的编码,并纠正任何看起来不正确的地方。您不希望最终得到充满错误的代码。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程