标准库举例:sys、copy

简介: Python标准库内容非常多,有人专门为此写过一本书。本文将选择几个呈现出来,一来显示标准库之强大功能,二来演示如何理解和使用标准库。sys是常用的标准库,已经不陌生了;copy也是已经用过的标准库。先从熟悉的入手,容易理解,这也是“杀熟”。本文选自《跟老齐学Python:轻松入门》。

引言:Python标准库内容非常多,有人专门为此写过一本书。本文将选择几个呈现出来,一来显示标准库之强大功能,二来演示如何理解和使用标准库。sys是常用的标准库,已经不陌生了;copy也是已经用过的标准库。先从熟悉的入手,容易理解,这也是“杀熟”。
本文选自《跟老齐学Python:轻松入门》。

sys

  这是一个跟Python解释器关系密切的标准库,前面已经使用过:sys.path.append()。
【图1】
  显示了sys的基本文档,第一句话概括了本模块的基本特点。
  在诸多sys函数和属性中,下面选择常用的来说明。

1.sys.argv

  sys.argv是专门用来向Python解释器传递参数的,所以称为“命令行参数”。
  先解释什么是命令行参数。
【图2】
  这里的--version就是命令行参数。如果使用python –help,则可以看到更多:
【图3】
  这里只显示了部分内容,所看到的如-B、-h都是参数,比如python -h,其功能同上。所以,-h也是命令行参数。
  sys.arg的作用就是通过它向解释器传递命令行参数。比如:
【图4】
  将上述代码保存,文件名是22101.py。然后如此操作:
【图5】
  将结果和前面的代码做个对比。

  • 在$ python sys_file.py中,“sys_file.py”是要运行的文件名,同时也是命令行参数,是前面的python这个指令的参数,其地位与python-h中的参数-h是等同的。
  • sys.argv[0]是第一个参数,就是上面提到的sys_file.py,即文件名。

如果这样来试试:
【图6】
  在这里用sys.argv [1]得到的就是beginner,依次类推。

2.sys.exit()

  这个方法的作用是退出当前程序。
【图7】
  从文档信息中可知,如果用sys.exit()退出程序,就会返回SystemExit异常。这里先告知读者,还有另外一种退出方式,即os._exit(),这两者有所区别。
【图8】
  这段程序的运行结果如下:
【图9】
  在大多数函数中会用到return,其含义是终止当前的函数,并向调用函数的位置返回相应值(如果没有就返回None)。但是sys.exit()的含义是退出当前程序(不仅仅是退出当前函数),并发起SystemExit异常。这就是两者的区别。
  如果使用sys.exit(0)表示正常退出,则需要在退出的时候有一个对人友好的提示,可以用sys.exit("I wet out at here."),那么字符串信息就会被打印出来。

3.sys.path

  sys.path已经不陌生了,它可以查找模块所在的目录,以列表的形式显示出来。如果用append()方法,就能够向这个列表增加新的模块目录,如前所演示,不再赘述。

copy

  前面对浅拷贝和深拷贝做了研究,这里再次提出,温故而知新。
【图10】
  这个模块中常用的就是copy和deepcopy。
  为了具体说明,看这样一个例子,这个例子跟以前讨论浅拷贝和深拷贝时略有不同,请读者认真推敲结果,并对照代码。
【图11】
  一切尽在不言中,请读者认真对照上面的显示结果,体会深拷贝和浅拷贝的实现方法和含义。

  本文选自《跟老齐学Python:轻松入门》,点此链接可在博文视点官网查看此书。
                    图片描述
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                       图片描述

相关文章
|
网络安全 开发工具 git
|
人工智能 物联网 Linux
从端到云-全面讲解物联网全栈开发之道
万物互联的时代即将到来,互联网作为当今最为火热的方向之一,无数开发者沉迷其中,那么从事物联网开发需要哪些知识储备呢?在本次分享中,来自创客学院的刘正道老师从物联网就业与岗位分析、物联网与嵌入式、物联网行业解决方案、物联网课程体系四部分全面讲解物联网全栈开发之道,带你走向物联网开发世界。
7674 0
|
监控 算法 搜索推荐
数据指标波动分析
闲鱼常用波动分析方法论总结
3088 0
数据指标波动分析
|
存储 运维 Kubernetes
蚂蚁集团万级规模 K8s 集群 etcd 高可用建设之路
蚂蚁集团运维着可能是全球最大的 K8s 集群:K8s 官方以 5k node 作为 K8s 规模化的顶峰,而蚂蚁集团事实上运维着规模达到 10k node 规模的 K8s 集群。一个形象的比喻就是,如果官方以及跟着官方的 K8s 使用者能想象到的 K8s 的集群规模是泰山,那么蚂蚁集团在官方的解决方案之上已经实现了一个珠穆朗玛峰,引领了 K8s 规模化技术的提升。
蚂蚁集团万级规模 K8s 集群 etcd 高可用建设之路
|
存储 资源调度 Kubernetes
Demo 示例:如何原生的在 K8s 上运行 Flink?
Kubernetes 相信大家都比较熟悉,近两年大家都在讨论云原生的话题,讨论 Kubernetes。本文由阿里巴巴技术专家王阳(亦祺)分享,社区志愿者翟玥整理主要介绍如何原生的在 Kubernetes 上运行 Flink。
Demo 示例:如何原生的在 K8s 上运行 Flink?
|
网络协议 Linux 文件存储
安装并启用Active Directory域服务与DNS服务
为了使用Windows AD/ACL,首先需要在VPC内创建一个Active Directory域服务控制器。本文分步骤说明了如何在Windows Server系统中从头开始安装与配置AD域服务和相应的DNS服务
8558 1
安装并启用Active Directory域服务与DNS服务
|
网络协议 Linux 文件存储
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
在本文中,我们首先简单介绍文件系统的用户认证和访问权限控制的概念,然后介绍阿里云SMB协议文件存储服务支持基于AD域系统的用户身份认证及访问权限控制的设计实现。
5124 0
阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍
|
弹性计算 运维 安全
40+篇服务器操作及运维基础知识!实用基础、最佳实践、服务器安全…快来!
这是一篇纯干货分享帖,不谈个人经验,只搬运牛人的技术“经验”。 ECS是阿里云非常重要的一款云服务产品,大多数人的云端之旅也是从ECS开始,以下知识将从浅入深,从图文到视频,再到最佳实践,相信看过这些内容之后,您就可以飞升成为云计算达人啦。
|
弹性计算 安全 API
阿里云服务器发布最新的服务等级协议SLA 为全球最高水准
单实例的可用性从99.95%提升至99.975%,多可用区多实例可用性从99.99%提升至99.995%,均为全球最高水准。
4826 0
阿里云服务器发布最新的服务等级协议SLA  为全球最高水准