博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之自定义模块
阅读量:7038 次
发布时间:2019-06-28

本文共 3815 字,大约阅读时间需要 12 分钟。

 

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 import foo3 print(foo)

 

为模块起别名

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

import meet.py as tt.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 当前时区的名称%% %号本身

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

import time   #导入时间模块print(time.time()) #获取时间戳#结果:1547559686.0308368import timeprint(time.strftime('%Y-%m-%d %X')) #strftime时间字符串#结果:    2019-01-15 21:43:55import timeprint(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)

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

时间格式转换:

 

 

时间转换

import timeprint(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 from datetime import datetime 2 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.82846213 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))  #给时间做加法
 

 

转载于:https://www.cnblogs.com/Tiamo-w/p/10273307.html

你可能感兴趣的文章
kudu 1.8.0(开发版) 源码安装
查看>>
LVS+Keepalived实现MySQL从库读操作负载均衡
查看>>
【转载】说说标准服务器架构(WWW+Image/CSS/JS+File+DB)续测试环境搭建
查看>>
day13-类的重写和类的私有方法
查看>>
[LeetCode][Java] Unique Paths II
查看>>
哈理工2015 暑假训练赛 zoj 2976 Light Bulbs
查看>>
Notes for C++
查看>>
web前端职业规划(转)
查看>>
用户体验 的一个原则,
查看>>
常用面试sql语句
查看>>
Kafka - 消费接口分析
查看>>
<s:property value=""/> 获取属性时的各种方式
查看>>
RF-RequestsLibrary
查看>>
【HDOJ】1892 See you~
查看>>
同伦延拓法中的几个数学常识
查看>>
毕业论文如何排版
查看>>
JS3 -- 模块(cmd amd)
查看>>
转:机器学习算法笔记:谱聚类方法
查看>>
浮点数转换成二进制
查看>>
关于python中的enumerate函数的应用
查看>>