一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情。
一、Python 中的包及包的导入
包既文件夹,包中可以包含子包既子文件夹,一个个Python脚本就是模块,模块中有包含了类和函数。Python的包中必须包含一个__init__.py文件,文件内容任意,不包含__init__.py文件,这个包就无法被他人使用
新建三个Python Package,分别是alpha、bravo、charlie,使用PyCharm新建Python Package会自动包含__init__.py文件
在alpha包下新建alpha模块并增加函数
def walk():
return 'alpha包下的alpha模块中的walk函数被调用'
def run():
return 'alpha包下的alpha模块中的run函数被调用'
复制代码
在bravo包下新建bravo模块并增加函数
def rush():
return 'bravo包下的bravo模块中的rush函数被调用'
def run():
return 'bravo包下的bravo模块中的run函数被调用'
复制代码
在charlie包下新建charlie模块并增加类别全局变量
heros = ['stark', 'banner', 'thor']
heros_org_name = 'Avengers'
class Hero:
def __init__(self, name):
self.name = name
def __str__(self):
return 'charlie包下的charlie模块中的Hero对象被实例化了'
复制代码
包和模块的导入
导入既将Python中的某个包或者模块导入当前的脚本中,导入使用from和import关键字,模块被导入后,就可以在当前文件中使用导入模块的函数类或者变量等。
在命令行中导入模块
新建一个test.py,与lilith包在同一级目录
def hello():
print('hello')
复制代码
在该目录下开启命令进入Python3的运行界面,使用import关键字导入
在lilith包新建一个lilith.py脚本文件,在该文件中新增lilith函数
def lilith():
print('lilith包下的lilith模块中的lilith函数被调用')
复制代码
在test.py文件中想要引用lilith函数,就必须使用from import关键字导入lilith模块,通过lilith模块调用lilith函数
from lilith import lilith
lilith.lilith()
复制代码
多级导入
lilith模块中还包含了alpha包、bravo包以及charlie包,想要在test.py文件中导入alpha、bravo、charlie包就需要现在lilith模块中导入这三个包,可以将导入语句写在lilith包下的__init__.py文件中
from .alpha import alpha
from .bravo import bravo
from .charlie import charlie
复制代码
再在test.py文件中导入alpha包
from lilith import alpha
print(alpha.walk())
复制代码
alpha模块中和bravo模块中都存在run函数,此时可以使用as关键字进行重命名
from lilith.alpha.alpha import run as alpha_run
from lilith.bravo.bravo import run as bravo_run
print(alpha_run())
print(bravo_run())
复制代码
导入语句非常的长,先要导入charlie模块下的类和变量可以将lilith包下的__init__.py文件中的导入语句改为
from .charlie.charlie import Hero, heros, heros_org_name
复制代码
直接将需要用到的变量、类导入到当前lilith包中,这样在test.py文件中可以直接从lilith模块中导入这些变量
from lilith import Hero, heros_org_name, heros
hero = Hero('stark')
print(hero)
print(heros_org_name)
for i in heros:
print(i)
复制代码
二、Python 中常用的第三方包/库
Python 中有非常多的功能完善的第三方库,通过这些第三方库可以极大的提高开发效率,有些第三方库是Python自带的,有些不是Python自带的,需要通过pip安装工具进行安装使用,推荐使用国内的镜像源,安装速度更快,使用Python官方的源非常容易超时,导致安装失败
pip3 install 第三方库的名称 -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
datetime 模块
datetime是比较常用的一个库,可以用来获取当前时间,时间间隔等;并且支持时间对象和字符串之间的互相转换
datetime库需要导入使用
import datetime
# 获取当前时间
now_time = datetime.datetime.now()
print(now_time)
# 实例化一个时间对象
datetime_obj = datetime.datetime(2022, 4, 14, 17, 00, 0000)
print(datetime_obj)
print(type(datetime_obj))
复制代码
from datetime import datetime
from datetime import timedelta
diff_time = timedelta(weeks=0, days=1, hours=0, minutes=0, seconds=0, microseconds=0)
last_day = datetime.now() - diff_time
print(last_day)
print(type(last_day))
复制代码