变量作用域及面向对象编程
二维码(Quick Respone Code)
也称为快速响应码,它是由两种不同颜色的小方格构成的二维平面图案,它就是将一个数据(通常是字符串)编码为二维码图像,扫描程序可以快速地识别出二维码图像数据(即解码)
变量作用域(Scope)问题
变量的作用域:变量可以被访问的代码范围
按照作用域不同,变量可以分为局部变量和全局变量(Global)
Python解释器在搜索被引用变量是遵守LEGB规则
L:Local,即函数内部作用域
E:Enclosing,外层嵌套函数作用域
G:Global,全局作用域
B:Built-in,内建作用域
函数除了可以嵌套调用,还可以嵌套定义
闭包(Enclosing)
函数内部定义的局部变量在函数返回后继续保留
要想实现闭包必须嵌套定义函数
版本控制系统
Version Control System,简称VCS,主要解决文件版本管理的问题,分为集中式VCS的和分布式VCS
集中式VCS:SVN等
分布式VCS:GIT等
掌握GIT的常用用法
GIT中三个重要的概念:工作区、暂存区、仓库
git log 查看日志
git reflog 查看对仓库所有改变的操作信息
git status 查看工作区状态
git reset --hard HEAD 返回上一次的更改
面向对象编程
Oriented Object Programming,简称OOP,是一种编程思想,OOP认为构成程序的基本单元为对象(实例),不同对象之间的交互就实现了程序的各种功能
面向过程编程认为函数是构成程序的基本单元,一组函数的顺序执行就实现了程序的各种功能
OOP是编程语言发展的趋势
OOP是通过类和对象实现的 ;对象(Object)也称为实例(instance),任何一个具体的事物都是一个对象,类(Class)是具有相同属性(Attribute,即数据)和方法(Method,即行为)的所有对象的集合或抽象
从数据类型的角度看,类其实是一种自定义数据类型,而对象则是属于该数据类型的一个具体的数据
访问限制
以一个或两个下划线开头命名属性和方法表示是私有的,即只能在类中访问它们,不要在类外访问它们,虽然Python没有提供语法规则保证这一点,但我们要自觉遵守!
属性(Attribute)
分为实例属性(Instance Attribute)和类属性(Class Attribute),实例属性属于对象所有,每个对象都有自己独立的一份属性,只能通过对象名访问,而类属性属于类所有,所有对象共享一份,可以通过类名和对象名都可以访问
在实际开发中,尽量避免实例属性和类属性同名
继承(Inheritance)
在一个类(即父类,基类,超类)的基础上定义一个新的类(子类,派生类),子类将会无条件获得父类所有功能,Python中所有类都必须直接或间接继承于object类,即object类是所有类直接或间接父类
继承体现出IS A的关系
同名覆盖(Override):子类定义了和父类同名的属性或方法
super内置函数:用于在子类中调用父类中被同名覆盖的方法
isinstance内置函数:判断一个对象是否是某个类的对象
单继承(Single Inheritance):父类只有一个
多(重)继承(Multiple Inheritance):一个类的直接父类有两个或多个
基本数据类型本质其实就是个类
python如何遍历文件夹,获取文件名
扩展
1.Python中除了object类没有父类其余都有
2.windows下面以点号开头并不是隐藏文件,而是文件的属性为隐藏
3.乱码产生的根本原因:编码解码不一致,建议统一使用utf-8
4.windows下面换行是\r\n,Linux下面换行是\n
5.vim自动格式化 ctrl+v进入可视化 按两个=即可
6.二进制的换算!!