#yyds干货盘点#提升Python编码能力的三个重要概念

  1. 引言
    Python 是由 Guido Van Rossum 于 1991 年创建的一种编程语言。在过去的几年里,越来越多的公司开始使用 Python 进行项目开发,主要是因为它语法简单,有很多方便使用的第三方库。本文主要对Python中一些概念进行抽象总结,理解并使用它们可以极大地提升大家的编码能力。
  2. 上下文管理器
    上下文管理器允许我们以最佳方式分配和释放上下文的资源。对于某些资源的管理上,如果处理不当,可能会产生一些非常奇怪的现象,让人摸不着头脑。上下文管理器可以确保资源在使用完毕后正常释放。
    一般来说,我们主要通过使用 with 关键字来使用它。使用上下文管理器最常见的情形是操作文件。对文件执行操作后,需要将其正确关闭,上下文管理器可以通过跳过具体细节来轻松地为我们完成相应的操作,举例如下:
with open('myfile.xtx', 'r') as f:
    content = f.read()

观察上述代码,我们并没有显示调用 ​​f.close()​​ 方法。上下文管理器会自动为我们处理文件关闭的操作。

  1. 类型提示
    类型提示可以帮助我们能够编写干净、可解释性强的代码。应用它的方式是“注明”参数的类型和函数的返回值。例如,我们要验证用户的文本输入始终是整数。为此,我们编写了一个函数,该函数根据我们的验证返回 True 或 False
def validate_integer(user_input):
    ...

既然我们知道了这个函数的作用,那么通过查看定义就很容易理解了。但是,如果没有上面的描述,只看上述函数的声明,想要弄懂它并不是那么容易。 user_input 参数的类型是什么?它从何而来?它已经是一个整数了吗?通过将代码重构为以下形式,我们可以通过声明来回答这些问题:

def validate_integer(user_input: str) -> bool:
    ...

我们观察上述函数的声明,就非常容易解释了,即使是第一次读到这段代码的人。

  1. 浅拷贝和深拷贝
    对于新入门的研发人员来说,这是一个经常弄错的概念。我们来看个例子,假设我们创建了一个列表 a,然后将此列表分配给一个新变量b:
>>> a = [1, 2, 3]
>>> b = a

接着,我们尝试在列表b中插入一个新值,然后打印两个列表:

>>> b.append(4)
>>> print(b)
[1, 2, 3, 4]
>>> print(a)
[1, 2, 3, 4]

很多人会觉得奇怪,因为新值已插入到两个列表中!发生这种情况主要是因为在 Python中分配列表时,除非另有说明,否则不会复制列表。上述列表b只是列表a的引用,属于浅拷贝。上述样例的图示解释如下:
image.png

上述图例意味着两个变量中的操作将反映到同一个列表中。如果我们确实相应生成列表a的副本,此时我们需要用到深拷贝,即使用 ​​.copy() ​​方法进行相关操作:

>>> a = [1, 2, 3]
>>> b = a.copy()
>>> b.append(4)
>>> print(b)
[1, 2, 3, 4]
>>> print(a)
[1, 2, 3]

以上就是本次分享的全部内容,现在想要学习编程的小伙伴欢迎关注Python技术大本营,获取更多技能与教程。

你可能感兴趣的:(python)