博客
关于我
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/

你可能感兴趣的文章
mysql备份与恢复
查看>>
mysql备份工具xtrabackup
查看>>
mysql备份恢复出错_尝试备份/恢复mysql数据库时出错
查看>>
mysql复制内容到一张新表
查看>>
mysql复制表结构和数据
查看>>
mysql复杂查询,优质题目
查看>>
MySQL外键约束
查看>>
MySQL多表关联on和where速度对比实测谁更快
查看>>
MySQL多表左右连接查询
查看>>
mysql大批量删除(修改)The total number of locks exceeds the lock table size 错误的解决办法
查看>>
mysql如何做到存在就更新不存就插入_MySQL 索引及优化实战(二)
查看>>
mysql如何删除数据表,被关联的数据表如何删除呢
查看>>
MySQL如何实现ACID ?
查看>>
mysql如何记录数据库响应时间
查看>>
MySQL子查询
查看>>
Mysql字段、索引操作
查看>>
mysql字段的细节(查询自定义的字段[意义-行列转置];UNION ALL;case-when)
查看>>
mysql字段类型不一致导致的索引失效
查看>>
mysql字段类型介绍
查看>>
mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
查看>>