博客
关于我
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中使用IN()查询到底走不走索引?
查看>>
Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
查看>>
MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
查看>>
mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
查看>>
mysql中出现Unit mysql.service could not be found 的解决方法
查看>>
mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
查看>>
Mysql中各类锁的机制图文详细解析(全)
查看>>
MySQL中地理位置数据扩展geometry的使用心得
查看>>
Mysql中存储引擎简介、修改、查询、选择
查看>>
Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
查看>>
mysql中实现rownum,对结果进行排序
查看>>
mysql中对于数据库的基本操作
查看>>
Mysql中常用函数的使用示例
查看>>
MySql中怎样使用case-when实现判断查询结果返回
查看>>
Mysql中怎样使用update更新某列的数据减去指定值
查看>>
Mysql中怎样设置指定ip远程访问连接
查看>>
mysql中数据表的基本操作很难嘛,由这个实验来带你从头走一遍
查看>>
Mysql中文乱码问题完美解决方案
查看>>
mysql中的 +号 和 CONCAT(str1,str2,...)
查看>>
Mysql中的 IFNULL 函数的详解
查看>>