Python From Zero to Hero(七)- Module & Package

一起养成写作习惯!这是我参与「掘金日新计划 · 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关键字导入 image.png

在lilith包新建一个lilith.py脚本文件,在该文件中新增lilith函数

def lilith():
    print('lilith包下的lilith模块中的lilith函数被调用')
复制代码

在test.py文件中想要引用lilith函数,就必须使用from import关键字导入lilith模块,通过lilith模块调用lilith函数

from lilith import lilith
lilith.lilith()
复制代码

image.png

多级导入

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())
复制代码

image.png

导入语句非常的长,先要导入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)
复制代码

image.png

二、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))
复制代码

image.png

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))
复制代码

image.png

猜你喜欢

转载自juejin.im/post/7086483872019398687