python 自定义模块_python之自定义模块

python模块简述

python中的模块分为三种:

1.内置模块

2.第三方模块pypi

3.自定义模块

模块的好处又有哪些:

1.拿来就用

2.省去开发的时间

3.提升效率

4.结构化便于查找 便于修改 便于维护

先上两个硬菜import和from

摘自python学习手册, 用于记录。

客户端可以执行import或from语句。如果模块还没有加载,这两个语句会去搜索、编译以及执行模块文件程序。主要差别在于,import会读取整个模块,所以必须进行定义后才能读取它的变量名;from将获取(或者是复制)模块特定的变量名。

import使一个变量名引用整个模块对象,因此必须通过模块名称来得到该模块的属性(例如,module1.printer)。而from会把变量名复制到另一个作用域,所以它就可以直接在脚本中使用复制后的变量名,而不用通过模块(例如,printer)。

from语句有破坏命名空间的潜质。如果使用from导入变量,而那些变量碰巧和作用域中现有变量重名,变量就会被悄悄的覆盖掉。使用import语句时就不存在这种问题,因为必须通过模块名才能获取其内容。不过,使用from时,只要你了解并预料到可能发生这种事,在实际情况下这就不是一个大问题了,尤其是当你明确列出导入变量名时(例如,from module import x, y, z)。

另一方面,和reload调用同时使用时,from语句有比较严重的问题,因为导入的变量名可能引用之前版本的对象。再者,from module import *形式的确可能破坏命名空间,让变量名难以理解,尤其是在导入一个以上的文件时。

比较务实的建议是:简单的模块一般倾向于使用import,而不是from。多数的from语句是用于明确列举想要的变量,而且限制在每个文件中只用一次from *形式。这样一来,任何无定义的变量名都可以认为是存在于from *所引用的模块内。当你必须使用两个不同模块内定义的相同变量名变量时,才真的必须使用import,这种情况下不能使用from。

1 #meet1文件

2 name = '111'

3 foo = '被调用'

4 print(name)

1 #meet文件

2 from meet importfoo3 print(foo)

为模块起别名

别名其实就是一个绰号,好处可以将很长的模块名改成很短,方便使用.

importmeet.py as t

t.read1()

py文件的两种功能

#编写好的一个python文件可以有两种用途:

一:脚本,一个文件就是整个程序,用来被执行

二:模块,文件中存放着一堆功能,用来被导入使用#python为我们内置了全局变量__name__,

当文件被当做脚本执行时:__name__ 等于'__main__'当文件被当做模块导入时:__name__等于模块名

#作用:用来控制.py文件在不同的应用场景下执行不同的逻辑(或者是在模块文件中测试代码)

if __name__ == '__main__':

time(时间)模块

#常用方法

1.time.sleep(secs)

(线程)推迟指定的时间运行。单位为秒。2.time.time()

获取当前时间戳

在计算中时间共有三种方式:

1.时间戳: 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型

2.格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’

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 当前时区的名称%% %号本身

987835-20190115214017000-1841184877.png

3.结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

import time #导入时间模块

print(time.time()) #获取时间戳#结果:1547559686.0308368

importtimeprint(time.strftime('%Y-%m-%d %X')) #strftime时间字符串#结果: 2019-01-15 21:43:55

importtimeprint(time.localtime()) #localtime将一个时间戳转换为当前时区的struct_time#结果:

time.struct_time(tm_year=2019, tm_mon=1, tm_mday=15, tm_hour=21,

tm_min=55, tm_sec=8,

tm_wday=1, tm_yday=15, tm_isdst=0)

小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

时间格式转换:

987835-20190115215735097-1342990464.png

时间转换

importtimeprint(time.time())#结果:1547560737.4594467

#把时间戳转换成结构化时间

print(time.gmtime())#英国伦敦的时间

print(time.localtime())#本地计算机时间 localtim#结果:#time.struct_time(tm_year=2019, tm_mon=1, tm_mday=15, tm_hour=13, tm_min=58, tm_sec=57, tm_wday=1, tm_yday=15, tm_isdst=0)#time.struct_time(tm_year=2019, tm_mon=1, tm_mday=15, tm_hour=21, tm_min=58, tm_sec=57, tm_wday=1, tm_yday=15, tm_isdst=0)

#把时间戳转换成字符串时间

print(time.strftime('%Y-%M-%d %H:%M:%S',time.localtime()))#首先转换成结构化时间,然后在转换成字符串

datetime

注意:datetime是模块,datetime模块还包含一个datetime的类,通过from datetime import datetime导入的才是datetime这个类。

如果仅导入import datetime,则必须引用全名datetime.datetime。

datetime.now()返回当前日期和时间,其类型是datetime。

datetime 时间转换

1 fromdatetime import datetime2 print(datetime.now()) #获取当前时间以字符串的形式3 # 结果: 2019-01-15 23:14:29.983605

4

5 f=datetime.now()6 print(datetime.timestamp(f))#获取时间戳7 #结果:1547565430.828462

8

9

10

11 print(datetime.fromtimestamp(1547565430.828462))#将时间戳转换成字符串12 #结果:2019-01-15 23:17:10.828462

13

14 import time15 print(datetime.fromtimestamp(time.time()))#将时间戳转换成字符串16 #结果:2019-01-15 23:20:00.840059

#把字符串转换成一个时间的对象

print(datetime.strptime('2019-01-15 13:14:22','%Y-%m-%d %H:%M:%S' ))

#%把一个时间类型转换成字符串

datetime.now()

print(datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S'))

from datetime import datetime, timedelta

print(datetime.now()+timedelta(days=1,hours=1))  #给时间做加法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值