码迷,mamicode.com
首页 > 编程语言 > 详细

python全栈学习--面向对象进阶3

时间:2018-04-21 23:32:37      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:全栈   设计   系统   单例模式   ==   false   结算   增删改查   有一个   

复习:

#反射 必须会,必须能看的懂,必须知道在哪儿用

#hasattr  getattr setattr delattr

内置方法 必须能看懂 能用尽量用

__len__len(obj)的结果依赖于obj.__len()__的结果,计算对象的长度

__hash__ hash(obj)的结果依赖于obj.__hash__()的结果,结算对象的hash值

__eq__ obj1 == obj2 的结果依赖于obj.__eq__()的结果,用来判断相等

__str__ str(obj) print(obj) ‘%s‘%obj 的结果依赖于__str__,用来做输出、显示

__repr__ repr(obj) ‘%r‘%obj的结果依赖于__repr__,还可以做str的备胎

__format__ format() 的结果依赖于__format__的结果,是对象格式化的

__call__ obj() 相当于调用 __call__, 实现了__call__的对象是callable 的

 __new__  构造方法,在执行__init__之前执行,负责创建一个对象,在单例模式中有具体的应用

__del__ 析构方法,在对象删除的时候,删除这个对象之前执行,主要用来关闭在对象中打开的系统资源

class A:
     def __getitem__(self, item):
         print(item)
a = A()

__getitem__  对象[]的新式对对象进行增删改查

__setitem__

__delitem__

__delattr__  del obj.attr  用来自定义删除一个属性的方法

 

只有一个对象,只开了一个内存空间

创建一个类 单例模式中的对象属性编程类中的静态属性,所有的方法变成类方法

设计模式---java

python中的单例模式  是使用__new__

 

python

显示一个对象中的所有a开头的属性

二,模块

py文件就是模块

python之所以好用,模块多

三种

  1.内置模块

    python安装的时候自带的

  2.扩展模块

    例如:

      itchat

      beautiful soap

      selenium  网页自动化测试工具

      django  tornado 

  3.自定义模块

内置模块

序列化模块

hashlib 模块

 

序列化模块

能存储在文件中的一定是字符串,或者是字节

能在网络上传输的 只有字节

dic = {"层数":(90,23)}
print(str(dic))
print(str(dic).encode(encoding=‘utf-8‘))
##注意上面中文才会显示下方 \xe5........

  技术分享图片

dic = {"层数":(90,23)}
print(str(dic))
print(str(dic).encode(encoding=‘utf-8‘))
b"{‘\xe5\xb1\x82\xe6\x95\xb0‘: (90, 23)}"
s = b"{‘\xe5\xb1\x82\xe6\x95\xb0‘: (90, 23)}"
res = s.decode(encoding=‘utf-8‘)
print(res)

  技术分享图片

# dic --> 字符串  序列化
#字符串 --> dic 反序列化
#序列化 == 创造一个序列 ==》创造一个字符串
#实例化 == 创造一个实例
import json
#序列化
dic = {"john":(190,90)}
ret = json.dumps(dic,ensure_ascii=False)
print(type(dic),dic)
print(type(ret),ret)
print(‘*‘,str(dic)) #土办法
#反序列化
res = json.loads(ret)
print(type(res),res)

  执行输出:

技术分享图片

 

f = open(‘john‘,‘r‘,encoding=‘utf-8‘)
ret = json.load(f)
print(type(ret),ret)

  执行输出

技术分享图片

dump 序列化  load反序列化   主要用于一个数据直接存在文件里直接和文件打交道

dumps序列化 loads反序列化   只在内存中操作数据  主要用于网络传输和多个数据与文件打交道

 

import pickle

 

 

python全栈学习--面向对象进阶3

标签:全栈   设计   系统   单例模式   ==   false   结算   增删改查   有一个   

原文地址:https://www.cnblogs.com/haowen980/p/8893308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!