模块和包
导入模块的方式
import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
""" 在一个python文件使用另外一个python文件当中的函数或者方法 zhu_.py 使我们自定义的模块 """ import zhu_ # 使用zhu_.py里面的func函数 zhu_.func(10, 20)
在zhu_.py中写的代码为:
def func(a, b): print(a + b)
自定义模块注意:
1.尽量把模块和使用的python项目文件放在同一个目录下
2.如果模块和python文件处于同级目录下,再导入的时候出现红色波浪线
---将他们的父级目录标记为根源3.python文件命名的时候,不要用python的文件名来命名
在zhu_.py文件里面,我打印__name__,返回的结果是__main__,所以if__name__=="__main__":条件为真
在demo_14.py文件里面,打印zhu_.__name__,输出的是zhu_
class Demo_Text(object): def func_two(self): print("我是类当中的第一个方法") def func_three(self): print("我是类当中的第二个方法")
#使用zhu_.py里面的类方法 #1.先创建一个对象 func=zhu_.Demo_Text() func.func_two() func.func_three()
如果模块文件中有__all__变量,当使用from xxx import *导入时,只能导入这个列表中的元素
使用from XXX import XXX
from zhu_ import func from zhu_ import Demo_Text func(10, 20) demo=Demo_Text() demo.func_two()
程序包
在程序包中如何调用
import方式
from 包名 import 方法
from 包名 import *
只有在这个__init__.py中调用了__all__,放入文件名,才能被调用
时间板块
获取当前时间
import time # 获取时间戳 while True: print(int(time.time())) # 每一秒钟打印一次,让程序在此睡眠一秒钟 time.sleep(1)
格式化时间
now_time=time.localtime(time.time()) print(now_time)
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)
now_time = time.localtime(time.time()) print(now_time) # 格式化成2023-06-14时:分:秒形式 new_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print("当前的时间为:", new_time)
深度拷贝
等号拷贝,相当于对于电脑中的某个文件夹新创建了一个快捷图标,快捷图标永远和源文件是一致的。
修改,两个方式都会发生相同的变化,这就是深度拷贝
copy浅拷贝
相当于对于电脑中某个文件夹内部的所有子文件夹新建了快捷图标,放到心得文件夹中,所有内部子文件夹内数据会跟着原来文件的改变而改变。
浅拷贝的地址不相同,但是相同元素的地址相同,改变其中一个的元素,另外一个也会跟着改变。
deepcopy深拷贝
相当于对于电脑中某个文件夹用u盘拷贝了一个备份。所以原来电脑中文件夹内文件改变时,u盘的文件是不会变化的。
深拷贝的内存地址不相同,但是元素地址相同,但是修改一个中的元素,另外一个的元素不会修改