1.time模块

import time  #python中最基本的时间模块
time.time()   #时间戳  (1970年1月1日00:00:00后经过的浮点秒数)
time.localtime(time.time())  #时间元组
time.struct_time(tm_year=2017, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=38, tm_sec=59, tm_wday=2, tm_yday=361, tm_isdst=0)
#返回的元组的内容:
#索引值(index) 属性(attribute)            值(value)
#0              tm_year(年)              例如:2016
#1             tm_mon(月)                1~12
#2             tm_mday(日)               1~31
#3             tm_hour(时)               0~23
#4             tm_min(分)                0~59
#5             tm_sec(秒)                0~60
#6             tm_wday(星期几)        0~6(0代表星期一)
#7             tm_yday(一年中的第几天)      1~366
#8             tm_isdst(是否为夏令时)  0,1,-1(-1代表夏令时)
 

格式化日期

python中时间日期格式化符号:
%y 两位数的年份表示(00-99
%Y 四位数的年份表示(000-9999
%m 月份(01-12
%d 月内中的一天(0-31
%H 24小时制小时数(0-23
%I 12小时制小时数(01-12
%M 分钟数(00=59
%S 秒(00-59
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366
%p 本地A.M.P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

time模块,常用内置函数

#time.time( )
返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
#time.localtime([secs])
接收时间辍(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组tt.tm_isdst可取01,取决于当地当时是不是夏令时)。
#time.asctime([tupletime])
接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"20081211周二18时0714秒)的24个字符的字符串。
#time.strftime(fmt[,tupletime])
接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
#time.strptime(str,fmt='%a %b %d %H:%M:%S %Y')
根据fmt的格式,把一个时间字符串,解析为时间元组。
#time.mktime(tupletime)
接受时间元组并返回时间辍(1970纪元后经过的浮点秒数)。
#time.sleep(secs)
推迟调用线程的运行,secs指秒数

获取日历

import calendar
cal = calendar.month(2018, 1)
print("以下输出2018年1月份的日历:")
print(cal)

2. json模块

JSON全称是(JavaScript Object Notation)是一种轻量级的数据格式,一般用于前后台,数据的交互。
导入 import json
print(json.__all__)  
常用的方法:dumpsloadsdumpload
在使用之前 我们要了解两个名字 序列化和反序列化
序列化: 把一个Python对象转化成json字符串
反序列化: json字符串转化成python
python对象json对象
dict object
list, tuple array
str string
int, float number
None null
True/False true/fase

 

3.装饰器

装饰器(deco):
    装饰函数的参数是被装饰的函数对象,返回原函数对象装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象
    概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。

4.类装饰器

@property 
    装饰过的函数返回的不再是一个函数,而是一个property对象
    装饰过后的方法不再是可调用的对象,可以看做数据属性直接访问。
@staticmethod #(静态方法)
    把没有参数的函数装饰过后变成可被实例调用的函数,      
    函数定义时是没有参数的,可以不接收参数
@classmethod (类方法)
    把装饰过的方法变成一个classmethod类对象,既能能被类调用又能被实例调用。
    注意参数是cls代表这个类本身。而是用实例的方法只能被实例调用。     
        
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。
而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。

 作业练习

#2. 写一个login函数 然后写一个装饰器,模拟登录过程:让程序延迟3秒
# 在延迟过程中输出正在验证
"""
def login():
print('登录成功')
"""

#/usr/bin/env python
#coding:utf-8

import time
def classmethod(func):
def login():
print('正在验证,请稍候!')
time.sleep(3)
result = func()
return result
return login

@classmethod
def f1():
print('登陆成功')

f1()

#3. 用time模块的方法,把这种格式时间的字符串 '2011-11-11'
#转成这种 时间格式:'2011/11/11'

import time
s = '2011-11-11'
t = time.strftime('%Y/%m/%d',time.strptime(s,'%Y-%m-%d'))
print(t)