博客
关于我
Python学习笔记——进阶
阅读量:531 次
发布时间:2019-03-08

本文共 1690 字,大约阅读时间需要 5 分钟。

Python基础入门

1. 知识前提

在进入Python编程之前,掌握一些基础知识是必不可少的。要想在Python中高效地开发和调试代码,理解内置功能和控制流是非常重要的。

2. 实进阶

2.1 浅拷贝和 深拷贝

在Python中,列表的拷贝方式有两个:浅拷贝和深拷贝。

浅拷贝:使用 [:] 对列表进行拷贝,引用自同一对象。如果原始列表中的元素是不可变对象且内部没有嵌套子对象,浅拷贝时不会创建新的对象。

深拷贝:使用 copy 模块中的 deepcopy 方法进行拷贝。如果列表中的元素是可变对象,深拷贝会创建新对象,并将引用指向新的对象。

2.2 面向对象

面向对象编程(OOP)是Python的核心编程范式。通过使用 class 关键字,我们可以定义类、方法和属性。

2.2.1 实例属性

类中的方法可以通过 self 参数接收对象。实例属性可以通过两种方式绑定:内部绑定和外部赋值。

2.2.2 类属性

类属性没有 self 前缀。可以通过类或实例访问,类属性的修改只能通过类进行。

2.2.3 实例方法

方法绑定在实例上,通过 self 参数接收。可以通过 dir 函数查看类或实例的属性和方法。

2.2.4 类方法

类方法使用 @classmethod 装饰器,其第一个参数为 cls

2.2.5 静态方法

静态方法不需要 selfcls 参数,可以通过类或实例调用。

2.2.6 访问控制

双下划线前缀(__)的属性无法在类对象外部访问。

2.2.7 封装

通过定义 setter 和 getter 方法,控制属性的访问权限。

2.2.8 继承

通过继承父类,继承父类的方法和属性。支持多继承。

2.2.9 多态

通过动态解析实现多态,子类可以 overriding 父类方法。

3. 模块与库

使用标准库和第三方库可以显著提高开发效率。

3.1 标准库安装

使用 pipconda 管理库安装。pip 是 Python 的包管理工具,conda 是 Anaconda 环境下的包管理工具。

3.2 第三方库

从 PyPI 下载并安装第三方库,例如 NumPy、Pandas 等。通过 import 导入库中的功能。

4. 文件操作

Python 的 open 函数用于打开文件,返回文件对象。通过 readwrite 等方法操作文件内容。

4.1 读取文件

一次性读取文件内容可能占用大量内存,不建议。逐行读取或使用缓冲区进行读取。

4.2 写文件

写文件时,字符串会首先写入缓冲区,等到 flush 或文件关闭时才会写入磁盘。

4.3 文件指针

使用 seektell 方法操作文件内存位置。

5. 异常处理

通过 tryexceptfinally 处理异常。可以自定义异常类,抛出特定错误信息。

5.1异常捕获

使用 try 外包裹异常发生的代码块,通过 except 捕获异常信息。

5.2异常信息

使用 sys.exc_info() 获取异常类型、错误值和堆栈信息。

5.3上下文管理器

使用 with 语句管理文件或资源,确保资源在异常时自动释放。

6. 函数

6.1 函数定义

函数是 Python 的核心,通过定义参数和返回值实现功能模块化。

6.2 偏函数

使用 functools.partial 创建偏函数,便于函数调用参数的预设。

6.3闭包

函数返回函数(闭包)可以访问外部变量,保持其值在内存中。

7. 变量作用域

在 Python 中,作用域有四种:局部、嵌套、全局和内置作用域。函数内的变量优先在局部作用域中查找,否则在嵌套作用域中查找,最后在全局作用域查找。

7.1命名空间操作

使用 globals()locals() 函数查看全局和局部命名空间。

8. 函数装饰器

装饰器通过修改函数行为或属性实现功能增强。使用 functools.wraps 保持装饰后的函数名称和文档。

8.1装饰器传参

通过嵌套装饰器实现参数传递,灵活配置函数行为。


以上内容经过优化,结构清晰,便于阅读和搜索引擎优化。

转载地址:http://pomnz.baihongyu.com/

你可能感兴趣的文章
Nginx:NginxConfig可视化配置工具安装
查看>>
ngModelController
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>