Python学习笔记十:json序列化,软件结构目录规范,ATM作业讲解,import本质论
json序列化
将系统的某个状态保存为字符串(挂起),序列化。
import json
json.dumps():序列化
json.loads():反序列化
简单类型数据处理
import pickle
pickle.dumps()
pickle.loads()
可以处理所有类型,二进制数据,需要rb,wb方式读取写入文件
pickle.dump(object,file)
file.close()
pickle.load(file)
file.close()
只能dump一次,如果有多个状态,要存在多个文件中
软件目录结构规范
软件目录,首字母大写
执行文件包、主包(软件名命名)、测试包、文档目录、配置文件包,安装文件,依赖关系文件,README
readme内容要求
相对路径与绝对路径
通过设置路径调用主包中的main.py
ATM作业
从bin入口看代码,找到主类,查看类的方法,
注释写在方法声明的正下方,多行注释
使用装饰器验证登录状态,而不是让用户登录
写日志封装成函数
封装用户登录,解耦
根据数据库不同的登录验证方式,实现同一种登录方式
类似janggo的数据库连接配置,支持多数据库
一个用户一个json文件,满足多用户同时登录需求,防止写脏数据
使用字典取消if判断
Python模块详解
定义
模块本质就是py结尾的python文件,用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能)
包是一个目录,带有一个__init__.py文件,用来从逻辑上组织模块,导入包实际是解释执行__init__.py,在__init__.py中import包中的模块(需要from . import module),在其他代码文件中import package,就可以直接调用模块的相关功能了。
使用方法
import 模块1,模块2…
模块.属性
模块.方法
from 模块 import *,从模块导入所有代码
from 模块 import 特定方法 as 别名
from 模块 import m1,m2,m3…
import本质
import module:定义一个变量module,将导入的模块(py文件)解释(运行)了一遍,把结果传给(赋值)module
form module import m1:
路径搜索和搜索路径
当前路径搜索,或者sys.path中的路径
将目录加入sys.path列表中,就可以进行搜索
os.path.abspath(__file__):获取当前文件的路径,__file__当前文件
os.path.dirname():获取目录名
导入优化
sys.path.insert(path):将路径插入第一个位置
如果在代码中多处调用模块中的方法,可以采用直接导入方法的方式优化,防止每次都去导入路径查找
Python学习笔记十:json序列化,软件结构目录规范,ATM作业讲解,import本质论的更多相关文章
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Python学习笔记:json模块和pickle模块(数据序列化)
Python中的json模块和pickle都是用于数据的序列化和反序列化,它们提供的方法也是一样的:dumps,dump,loads,load dumps(obj):将对象序列化为str. dump( ...
- python学习笔记十六:读取JSON文件
读取JSON文件可以用JSON库,示例代码: #coding:utf-8 import json with open("msg.json") as jsonfile: json_d ...
- Python学习日记(十八) 序列化模块
什么是序列? 就是每一个元素被有序的排成一列 什么是序列化? 就是将原本的列表.字典等内容转化成字符串的过程 什么时候会用到序列化? 数据存储(把数据放在文件.数据库),网络传输等 序列化的目的 1. ...
- Python学习笔记十_模块、第三方模块安装、模块导入
一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...
- python学习笔记:json与字典的转换(dump 和dumps load和loads的区别)
1. json序列化(字典转成字符串)方法: dumps:无文件操作 dump:序列化+写入文件 2. json反序列化(字符串转成字典)方法: loads:无文件操作 ...
- python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作
django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...
- python学习笔记(十六)-Python多线程多进程
一.线程&进程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程, ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
随机推荐
- 使用TFHpple解析html
使用TFHpple解析html https://github.com/topfunky/hpple 前期准备工作 引入静态库文件 添加库文件的 header search paths(注意,必须选中 ...
- [tools]excel转lua的python实现
time:2015/04/13 描述:需要将excel表格内容转成lua,并且作为工具使用,能够批量转换 步骤: (1)文章[1]已经做了大部分的内容,而且也已经能够使用了 (2)根据自己新的需求: ...
- C# Razor 小笔记和某些细节
知识小结:C# 的主要 Razor 语法规则 单独一个变量直接使用 @a 的形式,无需加分号,一般是直接使用已有变量,注意在使用 html 标签时,要和 razor 表达式加一个空格. //不能有空格 ...
- 5 hbase-shell + hbase的java api
本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装 .HBase的伪分布模式(1节点)的启动 .HBase ...
- background-size之CSS Sprite巧用
前言 background-size:规定背景图片的尺寸.为CSS3属性.so...万恶的ie浏览器,此刻的内心一定是崩溃的!说实话,作为一个前端的coder,面对CSS3如此多的炫酷效果,我不能用起 ...
- 【3】【MOOC】Python游戏开发入门-北京理工大学【第三部分-游戏开发之机制(事件处理机制)】
学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=and ...
- CentOS学习:第一天
阿里的一台ECS还有一个月到期,就趁这一个月的时间,用它来学习一下梦寐已久的CentOS. 由于历史原因,一直使用Windows环境,还从没接触过任何一种Linux系统. 在服务器端部署MySQL/T ...
- 【题解】前k大子段和
题目描述 Peter喜欢玩数组.NOIP这天,他从Jason手里得到了一个大小为\(n\)的数组. Peter求出了这个数组的所有子段和,并将这\(\frac{n(n+1)}{2}\)个数降序排列,他 ...
- 【[POI2010]ANT-Antisymmetry】
开始复习字符串了 第一步肯定得是\(hash\) 首先理性分析一波不可能出现长度为奇数的反回文串,对称轴位置取反之后肯定和原来不相等了 我们可以枚举所有回文串的对称中心,之后我们发现这个样子是具有单调 ...
- virtualbox+vagrant学习-4-Vagrantfile-7-WinRM Settings
WinRM Settings 配置命名空间config.winrm config.winrm配置与如何通过winrm配置vagrant访问你的Windows客户相关.与大多数vagrant设置一样,默 ...