Python 再学习1
基础语法打通小异,所以不赘述了
基本环境:
IDE环境:
PyCharm
python库管理:
Anaconda
参考:https://www.jianshu.com/p/169403f7e40c
他能管理你的安装环境和各种工具包,包含了conda、Python等190多个科学包及其依赖项。
使用:可以直接在图形界面搜索包,也可以命令行安装
conda install package_name
常用命令和操作:
运行命令:
python 文件名.py
进入python运行环境
python
切换python版本
我用的是Pycharm
面向对象
元类:
元类是用来创造类的类,我们常用的是type这个元类。(这个类很多时候用不到)
类也是对象
在python中,类不仅是用来描述如何生成一个对象的代码,他甚至会在解释器执行的时候创建一个名字为类名的对象。
对于这个对象我们可以做如下操作:
1、 将他赋值给一个变量
2、 拷贝他
3、 增加他的属性
4、 将他作为函数参数传递
动态地创建类
作为动态语言的python提供了可以动态创建对象的方法:
这里我们用到python的內建函数type。
type(类名 ,
由父类名称组成的元组(针对击沉情况,可以为空),
包含属性的字典(名称和值))
若添加方法则为:
_metaclass_属性
在解释器创建类时,如果有这个属性,就会优先通过这个属性的方法创建这个类,否则就走內建的type。
动态语言
动态添加属性
作为动态语言的python,可以在运行时改变其结构。
动态添加方法
动态删除属性和方法:
使用:
del 对象.属性名
delattr(对象,”属性名”)
限定属性 _slots_:
限制属性修改,只能有给定的属性,不能添加
生成器
在有规律的大数据存储的时候,为了避免因为数据量过大造成的内存空间占用,python可以通过生成器去一边循环一边计算。
特点:生成器所使用的参数都是使用第一次所调用时保留的。所以比较节约内存
简单生成器
只要把一个列表生成式的[] 变为 ()就好了
调用通过next调用:
复杂生成器
对于复杂生成器,一般都是用到的是for循环,为了保证一次一次传值,我们通过yield来控制。
yield 是一个类似 return 的关键字,迭代一次遇到yield时就返回yield后面(右边)的值。下一次迭代时,从上一次迭代遇到的yield后面的代码(下一行)开始执行