补充:
面向对象三大特性:封装,继承,多态
from json import JSONEncoder,JSONDecoder import json from datetime import datetime,date res = {'c1':datetime.today(),'c2':date.today()} # a = datetime.today() # 有time 就是年月日 时分秒 # b = date.today() # 没有就是 年月日 # print(a) # print(b) print(json.dumps(res))例子
# 出现报错 TypeError: Object of type 'datetime' is not JSON serializable # 想可以得到序列化内容 # 在用dumps序列化=时 注意cls参数 如果不设置,则默认使用 JSONEncoder # json.JSONEncoder 查看default方法 # self 为对象本身 o 为传入的对象 class MyJson(JSONEncoder): def default(self, o): if isinstance(o,datetime): # 格式化时间 return o.strftime('%Y-%m-%d %X') elif isinstance(o,date): return o.strftime('%Y-%m-%d') else: return super().default(self,o) res = {'c1':datetime.today(),'c2':date.today()} print(json.dumps(res,cls = MyJson))View Code
__call__
在普通类中 ,在调用对象时自动执行,(既对象加括号) 在元类中,当你调用类对象时会自动调用元类中的__call__方法 ,并将这个类本身作为第一个参数传入,以及后面的一堆参数 覆盖元类中的call之后,这个类就无法产生对象,必须调用super().__call__来完成对象的创建 ,并返回其返回值 使用场景: 当你想要控制对象的创建过程时,就覆盖__call__方法 当你想要控制类的创建过程时,就覆盖__init__方法View Code
网络编程
### 网络编程 :编写基于网络应用程序的过程 ### 软件开发架构 c/s client /server 客户端/服务端 b/s browser/server 浏览器/服务器 b/s 架构本质也是c/s架构 服务端:24小时不间断的提供服务 客户端:随时都可以访问数据
两台计算机要想通讯,必须要具备两个基本要素 1.物理连接介质,包括网线,无线电,光纤等 2.通讯协议
OSI协议
OSI: open System Interconnection Reference Model,开放式系统互联通信参考模型
OSI七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理连接层
OSI五层模型 应用层 传输层 网络层 数据链路层 物理连接层
1.物理连接层
基于电信号传输010101 的二进制数剧