1,040
社区成员




这是我参加朝闻道知识分享大赛的第30篇文章。
包含一系列数据、函数、类的文件,通常以.py结尾。
让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。
有利于多人合作开发。
(1) 语法:
先右键根目录文件夹,将目录标记为-源代码根目录
import 模块名
import 模块名 as 别名
(2) 作用:将模块整体导入到当前模块中,适合面向过程
(3) 使用:模块名.成员
(1) 语法:
from 模块名 import 成员名
from 模块名 import 成员名 as 别名
from 模块名 import *(全部成员)
(2) 作用:将模块内的成员导入到当前模块作用域中,适合面向对象
(3) 使用:直接使用成员名
(4) 快捷键:Alt + Enter
"""
module01.py
"""
def func01():
print("module01 - func01执行喽")
def func02():
print("module01 - func02执行喽")
# 导入方式1:import 模块名
# 使用:模块名.成员
# 原理:创建变量名记录文件地址,使用时通过变量名访问文件中成员
# 备注:"我过去"
# 适用性:适合面向过程(全局变量、函数)
import module01
module01.func01()
# 导入方式2.1:from 文件名 import 成员
# 使用:直接使用成员
# 原理:将模块的成员加入到当前模块作用域中
# 备注:"你过来"
# 注意:命名冲突
# 适用性:适合面向对象(类)
from module01 import func01
def func01():
print("demo01 - func01")
func01() # 调用的是自己的func01
# 导入方式2.2:from 文件名 import *
from module01 import *
func01()
func02()
__doc__变量:存储模块文档信息
__name__变量:模块自身名字,可以判断是否为主模块。
可以防止加载导入的时候,这个程序被执行
快捷键:main+回车
if __name__ == '__main__':
# 如果是主模块,才执行当前启动代码
# (如果被导入,不启动)
view = StudentView()
view.main()
如果当前模块是被导入模块,存储真实模块名
如果当前模块是主模块(第一次运行的模块),存储__name__
在模块导入时,模块的所有语句会执行。
如果一个模块已经导入,则再次导入时不会重新执行模块内的语句。
(1) 内置模块(builtins),在解析器的内部可以直接使用。
(2) 标准库模块,安装Python时已安装且可直接使用。(如:random、time)
(3) 第三方模块(通常为开源),需要自己安装。
(4) 用户自己编写的模块(可以作为其他人的第三方模块)
"""
标准库模块
time 时间模块
"""
import time
# 人类时间:2021年11月18日 16:32:25
# -- 时间元组(年,月,日,时,分,秒,星期,年的第几天,夏令时)
time_tuple = time.localtime()
print(time_tuple[0]) # 年
print(time_tuple[6]) # 星期
print(time_tuple[-3]) # 星期
print(time_tuple[:3]) # 年月日
print(time_tuple[3:6]) # 时分秒
# 机器时间
# -- 时间戳:从1970年到现在经过的秒数
print(time.time()) # 1637224879.6712253
# 时间元组 <--> 时间戳
# 语法:时间戳 = time.mktime(时间元组)
print(time.mktime(time_tuple))
# 语法:时间元组 = time.localtime(时间戳)
print(time.localtime(1637224879.6712253))
# 时间元组 <--> 字符串
# 语法:字符串 = time.strftime(格式,时间元组)
print(time.strftime("%y/%m/%d %H:%M:%S", time_tuple))
# 2021/11/18 16:51:49
print(time.strftime("%Y/%m/%d %H:%M:%S", time_tuple))
# 2021年11月18日 16时53分32秒
print(time.strftime("%Y年%m月%d日 %H时%M分%S秒", time_tuple))
# 语法:时间元组 = time.strptime(字符串,格式)
print(time.strptime("2021年11月18日 16时53分32秒", "%Y年%m月%d日 %H时%M分%S秒"))
将模块以文件夹的形式进行分组管理。
让一些相关的模块组织在一起,使逻辑结构更加清晰。
(1) 语法:
import 路径.模块名
import 路径.模块名 as 别名
(2) 作用:将模块整体导入到当前模块中
(3) 使用:模块名.成员
(1) 语法:
from 路径.模块名 import 成员名
from 路径.模块名 import 成员名 as 别名
from 路径.模块名 import *
(2) 作用:将模块内的成员导入到当前模块作用域中
(3) 使用:直接使用成员名
注意:路径从项目根目录开始计算
# 绝对路径:从项目根目录开始
# "我过去"
from package01.package02 import module01 as m
m.func01()
# "你过来"
from package01.package02.module01 import func01
func01()
在包第一次被导入的时候执行(直接import包,让包实现功能)
把会用到的代码放到init里头,提供必要的功能