十 面向对象(上)
1定义并使用类
定义类
类的基本使用
2 类对象
3 类方法
3.1定义并使用类方法
3.2构造方法__init__()
3.3方法调用:调用全局方法,调用类自身的方法self.
3.4创建多个实例
3.5使用私有方法__add
3.6析构方法:使用del删除对象时调用析构方法,当一个对象在作用域调用完毕后也调用析构方法。
3.7静态方法和类方法:通过类调用,也可通过实例调用
3.8专有方法:例如__init__
4 类属性
4.1认识属性
4.2类属性和实例属性
4.3设置属性的默认值
4.4修改属性的值
通过实例进行修改
4.5私有属性
5继承
5.1定义子类
父类必须在当前文件之前
必须指定父类名称 class childClass(parentClass)
使用super()将子类与父类关联
5.2在子类中定义方法和属性
5.3子类可以继续派生新类
5.4私有属性和私有方法
5.5多重继承
class childClass(parent1, parent2)
继承顺序:从左到右,调用先继承的同名方法
6方法重写
十一 面向对象(下)
1模块架构
最基本的模块调用:外部模块第一次调用时编译成字节码.pyc文件
使用compile模块对文件进行字节码编译
防止源码的泄漏
import py_compile
py_compile.compile('first.py', 'first.pyc')
使用__name__属性
模块名:作为模块导入
__main__:独立运行
2 使用包
2.1表示包
一个文件夹,必须包含__init__.py
3导入类
3.1只导入一个类from car import Car
3.2导入指定的类from car import Car
3.3导入多个类from car import Car,ChadianCar
3.4导入整个模块import car
3.5 在一个模块中导入另一个模块
4迭代器
4.1什么是迭代器
iter(list)创建迭代器对象
5生成器
使用yield定义的函数被称为生成器
生成一个值用于迭代
6装饰器
6.1创建装饰器
6.2 使用装饰器装饰函数
和函数类似,参数为函数/类对象,返回一个新的函数代替被装饰的函数
def zz(fun):
def wrapper(*args, **bian):
print('开始运行')
fun(*args, **bian)
print('运行结束')
return wrapper
@zz
def hello(name):
print('Hello', name)
if __name__ == '__main__':
hello('浪潮')
6.3 使用装饰器装饰类
7 命名空间
命名空间是一个字典:键是变量名,值是变量的值
11.8闭包
8.1什么是闭包?
调用一个函数,返回另一个函数。返回的函数就叫闭包
def func(name):
def inner_func(age):
print('name', name, 'age:', age )
return inner_func
bb = func('程序')
bb(66)
8.2 闭包和嵌套函数
闭包:将组成函数的语句和这些语句的执行环境打包到一起所得到的环境
8.3 使用闭包记录函数的调用次数
8.3 使用闭包实现延迟请求
8.5 闭包和装饰器
十二文件操作处理
十三异常处理
十四正则表达式
十五多线程开发
十六 Tkinter图形化界面开发
十七 网络编程
1网络开发基础
1.1 OSI七层网络模型
物理硬件层 数据链路层 网络层 数据传输层 会话层 表示层 应用层
1.2 TCP/IP协议
数据链路层 网络层 数据传输层 应用层
TCP:具有重发机制
2套接字编程
3 socket-server编程
4 HTTP协议开发
4.1使用urllib包
urlopen()打开一个URL地址
urlretrieve()可以将URL另存为本地文件
urlencode()可以对URL进行编码
quote()和quote_plus()替换字符串中的特殊字符
4.2使用HTTP包
from http.client import HTTPConnection
mc = HTTPConnection('www.baidu.com')
mc.request('GET', '/')
res = mc.getresponse()
print(res.status, res.reason)
print(res.read().decode('utf-8'))
5 收发电子邮件
6开发FTP文件传输程序
7 解析XML
8解析JSON
8.1类型转换
JSON类型喝Python进行类型转换
json.dumps()编码json数据,
json.loads()解码json数据
json.dump()编码json文件
json.load()解码json文件
import json
data = {
'no': 1,
'name': 'shiyujian'
}
str = json.dumps(data)
print(repr(data))
print(str)
十八数据库开发
搭建PyMySQL环境
pip3 install PyMySQL
mysql community 数据库服务
import pymysql
#打开数据库连接
db = pymysql.connect('127.0.0.1', 'root', '847650632syj', 'construct_tree')
#创建一个游标对象cursor
cursor = db.cursor()
#使用execute方法执行SQL查询
cursor.execute('SELECT VERSION()')
#使用fetchone()方法获取单条数据
data = cursor.fetchone()
print(data)
#关闭数据库连接
db.close()
使用适配器
用于连接多个数据库系统
使用ORM操作数据库
用于减少写SQL语句,减少参与数据库管理
十九 动态Web开发基础
1 CGI编程
1.2搭建CGI服务器
自带服务器:
python2 -m SimpleHTTPServer 9999