python函数扩展 python 扩展类

昆明java培训学校告诉你python编程开发关于程序扩展操作?

随着互联网的不断发展,我们对python编程开发技术的学习和掌握程度也在不断的提高。下面我们就通过案例分析来了解和学习一下,关于程序扩展都有哪些操作方法。

创新互联致力于成都做网站、网站建设、外贸营销网站建设,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择创新互联,就选择了安全、稳定、美观的网站建设服务!

必要的概念传统编程依赖于两个核心概念:函数和类。使用这些构建块就可以构建出无数的应用程序。但是,当我们将应用程序迁移到分布式环境时,这些概念通常会发生变化。一方面,OpenMPI、Python多进程和ZeroMQ等工具提供了用于发送和接收消息的低级原语。这些工具非常强大,但它们提供了不同的抽象,因此要使用它们就必须从头开始重写单线程应用程序。另一方面,我们也有一些特定领域的工具,例如用于模型训练的TensorFlow、用于数据处理且支持SQL的Spark,以及用于流式处理的Flink。这些工具提供了更高级别的抽象,如神经网络、数据集和流。但是,因为它们与用于串行编程的抽象不同,所以要使用它们也必须从头开始重写应用程序。用于分布式计算的工具Ray占据了一个独特的中间地带。它并没有引入新的概念,而是采用了函数和类的概念,并将它们转换为分布式的任务和actor。Ray可以在不做出重大修改的情况下对串行应用程序进行并行化。

开始使用Ray

ray.init()命令将启动所有相关的Ray进程。在切换到集群时,这是需要更改的行(我们需要传入集群地址)。java课程培训机构发现这些过程包括:

有很多worker进程并行执行Python函数(大概是每个CPU核心对应一个worker)。用于将“任务”分配给worker(以及其他计算机)的调度程序进程。任务是Ray调度的工作单元,对应于一个函数调用或方法调用。

python函数高级

一、函数的定义

函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需要调用函数名即可

特性:

减少重复代码

使程序变得可扩展

使程序变得易维护

二、函数的参数

2.1、形参和实参数

形参,调用时才会存在的值

实惨,实际存在的值

2.2、默认参数

定义:当不输入参数值会有一个默认的值,默认参数要放到最后

2.3、 关键参数

定义: 正常情况下,给函数传参数要安装顺序,不想按顺序可以用关键参数,只需要指定参数名即可,(指定了参数名的就叫关键参数),但是要求是关键参数必须放在位置参数(以位置顺序确定对应的参数)之后

2.4、非固定参数

定义: 如你的函数在传入参数时不确定需要传入多少个参数,就可以使用非固定参数

# 通过元组形式传递

# 通过列表形式传递

# 字典形式(通过k,value的方式传递)

# 通过变量的方式传递

三、函数的返回值

作用:

返回函数执行结果,如果没有设置,默认返回None

终止函数运行,函数遇到return终止函数

四、变量的作用域

全局变量和局部变量

在函数中定义的变量叫局部变量,在程序中一开始定义的变量叫全局变量

全局变量作用域整个程序,局部变量作用域是定义该变量的函数

当全局变量与局部变量同名是,在定义局部变量的函数内,局部变量起作用,其他地方全局变量起作用

同级的局部变量不能互相调用

想要函数里边的变量设置成全局变量,可用global进行设置

五、特殊函数

5.1、嵌套函数

定义: 嵌套函数顾名思义就是在函数里边再嵌套一层函数

提示 在嵌套函数里边调用变量是从里往外依次调用,意思就是如果需要调用的变量在当前层没有就会去外层去调用,依次内推

匿名函数

基于Lambda定义的函数格式为: lambda 参数:函数体

参数,支持任意参数。

匿名函数适用于简单的业务处理,可以快速并简单的创建函数。

# 与三元运算结合

5.3、高阶函数

定义:变量可以指向函数,函数的参数可以接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称之为高阶函数 只需要满足一下任意一个条件,即是高阶函数

接收一个或多个函数作为输入

return返回另一个函数

5.4、递归函数

定义:一个函数可以调用其他函数,如果一个函数调用自己本身,这个函数就称为递归函数

在默认情况下Python最多能递归1000次,(这样设计师是为了防止被内存被撑死)可以通过sys.setrecursionlimit(1500)进行修改

递归实现过程是先一层一层的进,然后在一层一层的出来

必须有一个明确的条件结束,要不然就是一个死循环了

每次进入更深层次,问题规模都应该有所减少

递归执行效率不高,递归层次过多会导致站溢出

# 计算4的阶乘 4x3x2x1

# 打印数字从1-100

5.5、闭包现象

定义:内层函数调用外层函数的变量,并且内存函数被返回到外边去了

闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,优先使用自己外层包裹的作用域

python常用函数包有哪些?

一些python常用函数包:

1、Urllib3

Urllib3是一个 Python 的 HTTP 客户端,它拥有 Python 标准库中缺少的许多功能:

线程安全

连接池

客户端 SSL/TLS 验证

使用分段编码上传文件

用来重试请求和处理 HTTP 重定向的助手

支持 gzip 和 deflate 编码

HTTP 和 SOCKS 的代理支持

2、Six

six 是一个是 Python 2 和 3 的兼容性库。这个项目旨在支持可同时运行在 Python 2 和 3 上的代码库。它提供了许多可简化 Python 2 和 3 之间语法差异的函数。

3、botocore、boto3、s3transfer、awscli

Botocore是 AWS 的底层接口。Botocore是 Boto3 库(#22)的基础,后者让你可以使用 Amazon S3 和 Amazon EC2 一类的服务。Botocore 还是 AWS-CLI 的基础,后者为 AWS 提供统一的命令行界面。

S3transfer(#7)是用于管理 Amazon S3 传输的 Python 库。它正在积极开发中,其介绍页面不推荐人们现在使用,或者至少等版本固定下来再用,因为其 API 可能发生变化,在次要版本之间都可能更改。Boto3、AWS-CLI和其他许多项目都依赖s3transfer。

4、Pip

pip是“Pip Installs Packages”的首字母递归缩写。

pip很容易使用。要安装一个包只需pip install package name即可,而删除包只需pip uninstall package name即可。

最大优点之一是它可以获取包列表,通常以requirements.txt文件的形式获取。该文件能选择包含所需版本的详细规范。大多数 Python 项目都包含这样的文件。

如果结合使用pip与virtualenv(列表中的 #57),就可以创建可预测的隔离环境,同时不会干扰底层系统,反之亦然。

5、Python-dateutil

python-dateutil模块提供了对标准datetime模块的强大扩展。我的经验是,常规的Python datetime缺少哪些功能,python-dateutil就能补足那一块。

6、Requests

Requests建立在我们的 #1 库——urllib3基础上。它让 Web 请求变得非常简单。相比urllib3来说,很多人更喜欢这个包。而且使用它的最终用户可能也比urllib3更多。后者更偏底层,并且考虑到它对内部的控制级别,它一般是作为其他项目的依赖项。

7、Certifi

近年来,几乎所有网站都转向 SSL,你可以通过地址栏中的小锁符号来识别它。加了小锁意味着与该站点的通信是安全和加密的,能防止窃听行为。

8、Idna

根据其 PyPI 页面,idna提供了“对 RFC5891 中指定的应用程序中国际化域名(IDNA)协议的支持。”

IDNA的核心是两个函数:ToASCII和ToUnicode。ToASCII会将国际 Unicode 域转换为 ASCII 字符串。ToUnicode则逆转该过程。在IDNA包中,这些函数称为idna.encode()和idna.decode()

9、PyYAML

YAML是一种数据序列化格式。它的设计宗旨是让人类和计算机都能很容易地阅读代码——人类很容易读写它的内容,计算机也可以解析它。

PyYAML是 Python 的YAML解析器和发射器,这意味着它可以读写YAML。它会把任何 Python 对象写成YAML:列表、字典,甚至是类实例都包括在内。

10、Pyasn1

像上面的IDNA一样,这个项目也非常有用:

ASN.1 类型和 DER/BER/CER 编码(X.208)的纯 Python 实现

所幸这个已有数十年历史的标准有很多信息可用。ASN.1是 Abstract Syntax Notation One 的缩写,它就像是数据序列化的教父。它来自电信行业。也许你知道协议缓冲区或 Apache Thrift?这就是它们的 1984 年版本。

11、Docutils

Docutils是一个模块化系统,用来将纯文本文档处理为很多有用的格式,例如 HTML、XML 和 LaTeX 等。Docutils能读取reStructuredText格式的纯文本文档,这种格式是类似于 MarkDown 的易读标记语法。

12、Chardet

你可以用chardet模块来检测文件或数据流的字符集。比如说,需要分析大量随机文本时,这会很有用。但你也可以在处理远程下载的数据,但不知道用的是什么字符集时使用它。

13、RSA

rsa包是一个纯 Python 的 RSA 实现。它支持:

加密和解密

签名和验证签名

根据 PKCS#1 1.5 版生成密钥

它既可以用作 Python 库,也能在命令行中使用。

14、Jmespath

JMESPath,发音为“James path”,使 Python 中的 JSON 更容易使用。它允许你声明性地指定如何从 JSON 文档中提取元素。

15、Setuptools

它是用于创建 Python 包的工具。不过,其文档很糟糕。它没有清晰描述它的用途,并且文档中包含无效链接。最好的信息源是这个站点,特别是这个创建 Python 包的指南。

16、Pytz

像dateutils一样,这个库可帮助你处理日期和时间。有时候,时区处理起来可能很麻烦。幸好有这样的包,可以让事情变得简单些。

17、Futures

从 Python 3.2 开始,python 提供current.futures模块,可帮助你实现异步执行。futures 包是该库适用于 Python 2 的 backport。它不适用于 Python3 用户,因为 Python 3 原生提供了该模块。

18、Colorama

使用 Colorama,你可以为终端添加一些颜色:

更多Python知识请关注Python自学网


当前文章:python函数扩展 python 扩展类
链接分享:http://azwzsj.com/article/hpdgee.html