python15_模块与包 __name__ 自定义模块 自定义包 模块的分类 内置模块 第三方模块

1. 模块

1.1 模块的实质

在这里插入图片描述在这里插入图片描述

1.2 自定义模块

  1. python模块实质上是一个python文件
    自定义了一个名称为westos的模块
    在这里插入图片描述

  2. 注意:自定义的python文件的文件名一定不要和已有的模块冲突

  3. 导入模块实质上是加载并执行模块的内容

import  westos

print(westos.digits)    # 0123456789
westos.login()          # login......
  1. 导入模块的几种方式:
  • import westos
  • from westos import login
  • from westos import login as l
import  westos
print(westos.digits)    	# 0123456789
westos.login()          	# login......

from westos import login
login()                     # login......

from westos import login as l
l()                         # login......

在这里插入图片描述

  1. 模块的其他信息:
  • 模块的查看路径
  • 查看westos模块可以使用的变量和函数
  • 查看模块的说明文档
  • 显示模块的绝对路径
  • __name__当模块被导入时,显示的是模块的名称
import sys
print(sys.path)         # 模块的查看路径
# ['E:\\pythonProject1\\2021-11-28-python_study\\day06', 'E:\\pythonProject1\\2021-11-28-python_study', 'E:\\python\\python39.zip', 'E:\\python\\DLLs', 'E:\\python\\lib', 'E:\\python', 'E:\\python\\lib\\site-packages']

import westos
print(dir(westos))      # 查看westos模块可以使用的变量和函数
# ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'digits', 'login']

print(westos.__doc__)   # 查看模块的说明文档
# westos模块的说明文档

print(westos.__file__)  # 显示模块的绝对路径
# E:\pythonProject1\2021-11-28-python_study\day06\westos.py

print(westos.__name__)  # __name__当模块被导入时,显示的是模块的名称
# westos

1.3 模块制作 之 _ _ name _ _

在这里插入图片描述

  1. 当在模块内部执行_ _ name _ _ 时,其值为 _ _ main _ _
"""
westos模块的说明文档
"""
digits = '0123456789'

def login():
    print('login......')

print(__name__)				# __main__
# 当在模块内部执行__name__时,其值为__main__
  1. 当模块被导入时,_ _ name _ _的值为模块名( westos )
"""
westos模块的说明文档
"""
digits = '0123456789'

def login():
    print('login......')

# print(__name__)
# __main__
# 当在模块内部执行__name__时,其值为__main__

# 当模块内部执行时,需要执行此代码。
# 当模块被导入,则不执行此代码
if __name__ == '__main__':
    print(__name__)				# __main__
    # 当在模块内部执行__name__时,其值为__main__
    # 当模块被导入时,__name__的值为模块名(westos)

在这里插入图片描述在这里插入图片描述

1.4 导入模块的注意事项

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

2. 包

2.1 包的实质

在这里插入图片描述

2.2 自定义包

  1. 先在pycharm中创建包的python应用程序目录
    在这里插入图片描述
  2. 自定义sdk包中的模块
    包实质上是包含 _ _ init _ _.py文件的目录
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  3. 导入自定义的包
  • 导入包实质上是做什么?
    执行包中的__init__.py的内容
    在这里插入图片描述
  1. 导入包的方式:
  • 方法一:
    from sdk import ali
    from sdk import huawei
    在这里插入图片描述
  • 方法二:
    _ _ init _ _.py文件中添加导入的信息
    import sdk
    sdk.ali.create_ecs()
    在这里插入图片描述
    在这里插入图片描述

2.3 从 * 导入包

在这里插入图片描述

3. 模块的分类

3.1 内置模块

  1. time
import time
print(time.time())              # 计算时间戳
print(time.ctime())             # 字符串的时间,Tue Dec 28 19:48:00 2021
tuple_time = time.localtime()   # 元组类型的时间
print(tuple_time)               # time.struct_time(tm_year=2021, tm_mon=12, tm_mday=28, tm_hour=19, tm_min=48, tm_sec=51, tm_wday=1, tm_yday=362, tm_isdst=0)
print(tuple_time.tm_year)       # 2021
  1. datetime
from datetime import date, datetime, timedelta
print(date.today())                             # 获取今天的日期,2021-12-28
print(datetime.now())                           # 获取当前时间,2021-12-28 19:52:21.595948
print(date.today() + timedelta(days=3))         # 获取3天后的日期,2021-12-31
print(date.today() - timedelta(days=3))         # 获取3天前的日期,2021-12-25
print(datetime.now() + timedelta(minutes=10))   # 获取10min之后的时间信息,2021-12-28 20:02:21.595948
print(datetime.now() - timedelta(minutes=10))   # 获取10min之前的时间信息,2021-12-28 19:42:21.595948
  1. random
import random
print(random.random())              # 生成0~1之间的小数,0.1558520477606623
print(random.randint(1, 10))        # 生成1~10之间的整数,8
print(random.choice(['倩倩','璐璐','佳佳']))      # 随机选择一个元素,倩倩
print(random.sample(['倩倩','璐璐','佳佳'], 2))   # 随机选择n(n=2)个元素,['佳佳', '璐璐']
print(random.choices(['倩倩','花花','璐璐'], weights=[100, 10, 10]))  # 随机选择一个元素,设置权重大小
  1. string
import string
print(string.digits)            # 0123456789
print(string.ascii_letters)     # abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_uppercase)   # ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase)   # abcdefghijklmnopqrstuvwxyz

3.2 第三方模块

  1. 安装相关模块
    E:\pythonProject1\2021-11-28-python_study> pip install colorama -i https://pypi.douban.com/simple
    E:\pythonProject1\2021-11-28-python_study>pip install faker -i https://pypi.douban.com/simple
  1. colorama

在这里插入图片描述

import colorama
print('Error: 主机不存在')
print(colorama.Fore.RED + 'Error: 主机不存在')
print(colorama.Style.BRIGHT + 'Outlook')
print(colorama.Fore.BLUE + 'Outlook')
print(colorama.Back.LIGHTBLUE_EX + 'Outlook')

在这里插入图片描述

  1. faker
    在这里插入图片描述
from faker import Faker
fake = Faker('zh-cn')
print(fake.name())      # 随机生成中文名,李俊
print(fake.address())   # 随机生成一个地址,北京市淑珍县永川王路u座 703074
print(fake.email())     # 随机生成一个邮箱,qianglai@example.com

3.3 自定义模块

自己编写的python文件(模块)或者包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值