模块和包
什么是模块
模块的导入方法
包和模块的区别
导入模块的方式
-
import 模块名
-
from 模块名 import 功能名
-
from 模块名 import *
-
import 模块名 as 别名
-
from 模块名 import 功能名 as 别名
制造模块
在Python中,每个Python⽂件都可以作为⼀个模块,模块的名字就是⽂件的名字。也就是说⾃定义模块名必须要符合标识符命名规则。
新建一个python文件,命名my_demo,并在里面写一个函数
# -*- coding:utf-8 -*-
def func(a,b):
print(a+b)
class Func(object):
def __init__(self,a,b):
self.a = a
self.b = b
def func_demo(self):
print(self.a+self.b)
如果⼀个模块⽂件中有 __all__ 变量,当使⽤ from xxx import * 导⼊时,只能导⼊这个列表中的元素。
__all__ = ['testA']
def testA():
print('testA')
def testB():
print('testB')
调用模块
import 模块名
制作包
[New] — [Python Package] — 输⼊包名 — [OK] — 新建功能模块(有联系的模块)。
导入包
# 方法一 import 包名.模块名 包名.模块名.⽬标
包里面存放模块
# 方法二 # 注意:必须在 __init__.py ⽂件中添加 __all__ = [] ,控制允许导⼊的模块列表。 from 包名 import * 模块名.⽬标
常用的python内置模块
1、时间模块
-
获取当前时间
从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime之类的函数
import time
now_time1 = time.localtime(time.time())
print(now_time1)
-
获取格式化的时间
import time
now_time2 = time.asctime(time.localtime(time.time()))
print(now_time2)
-
格式化日期
import time
# 格式化成2022-09-70 时:分:秒形式
now_time3 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(now_time3)
-
程序睡眠
import time time.sleep(5)
-
python中时间日期格式化符号
年 - %y 两位数的年份表示(00-99) - %Y 四位数的年份表示(0000-9999) 月 - %m 月份(01-12) 日 - %d 月内中的一天(0-31) 时 - %H 24小时制小时数(0-23) - %I 12小时制小时数(01-12) 分 - %M 分钟数(00-59) 秒 - %S 秒(00-59)
2、深浅拷贝
-
等号拷贝
相当于对于电脑中某个文件夹新建了一个快捷图标,快捷图标永远和原文件是一致的。
list1 = ["张三", "李四", "王五", "赵六"] list2 = list1 print(id(list1)) print(id(list2)) list1[1] = "坤哥" print(list1) print(list2)
-
copy浅拷贝
相当于对于电脑中某个文件夹内部的所有子文件夹新建了快捷图标,放到新的文件夹中,所以内部子文件夹内数据会跟着原来文件的改变而改变。
list1 = [1, 2, 3, 4, ['a', 'b', 'c']]
list2 = list1.copy()
print("列表1的ID:", id(list1))
print("列表2的ID:", id(list2))
print("修改元素之前:", list1)
print("修改元素之前:", list2)
print("列表1当中元素ID:", id(list1[4][0]))
print("列表1当中元素ID:", id(list2[4][0]))
list1[4][0] = "坤哥"
print("修改元素之后:", list1)
print("修改元素之后:", list2)
-
deepcopy深拷贝
相当于对于电脑中某个文件夹用u盘拷贝了一个备份。所以原来电脑中文件夹内文件改变时,u盘的文件是不会变化的。
from copy import deepcopy
list1 = ["张三", "李四", "王五", "赵六"]
list2 = deepcopy(list1)
print(id(list1))
print(id(list2))
list1[1] = "坤哥"
print(list1)
print(list2)