导入模块_导入包_标准库模块

导入模块

# 方式1
# 语法:import 模块
# 本质:使用变量module01存储该模块地址
# 优点:不用担心成员冲突问题
# 使用:需要通过变量访问
import module01
module01.fun01()

import module01 as m
m.fun01()

# 方式2
# 本质:将模块指定成员导入到当前模块作用域中
# from 模块 import 成员
# 使用:直接使用导入的成员
# 缺点:可能造成成员冲突
from module01 import fun01
from module01 import MyClass01

def fun01():
    print("demo01--fun01")

fun01()

c01 = MyClass01()
c01.fun02()

# 方式3
# from 模块 import *
# 优点:可以一次导入多个成员,避免一个一个导入.
# 缺点: 代码可读性不高,命名冲突几率更大.
from module01 import *
# from module02 import *
# from module03 import *
fun01()

c01 = MyClass01()
c01.fun02()

 模块变量

__all__

"""
    module5
"""

__all__ = ["fun01"]
# 定义可以被其他模块导入的成员

def fun01():
    print("fun01")

# 隐藏成员:使用单下划线命名,
#          在其他模块中不使用(因为现在的__all__限定于fun01)
#         仅限于from ? import *
def _fun02():
    print("fun02")

def fun03():
    print("fun03")
from module05 import *

fun01()
# 1. 隐藏模块成员
# _fun02()# 不能访问隐藏成员
# fun03()# 不能访问__all__以外的成员
   
# from module05 import _fun02
# _fun02()# 能访问隐藏成员

# from module05 import fun03
# fun03() # 能访问__all__以外的成员

__doc__  __file__  __name__

# 2. 查看当前模块的文档注释
print(__doc__)

# 3. 查看当前模块的文件路径
# /home/tarena/1906/month01/code/day14/demo03.py
print(__file__)

# 4.查看当前模块名称 --- 判断当前模块是否为主模块
if __name__ == "__main__":
    print("是主模块(程序从当前模块开始执行)")

模块分类

  1. 内置模块(builtins),在解析器的内部可以直接使用。

  2. 标准库模块,安装Python时已安装且可直接使用。

  3. 第三方模块(通常为开源),需要自己安装。

  4. 用户自己编写的模块(可以作为其他人的第三方模块)

搜索顺序

搜索内建模块(builtins)

sys.path 提供的路径,通常第一个是程序运行时的路径。

 

导入包

import 包名 [as 包别名] 需要设置__all__

import 包名.模块名 [as 模块新名]

import 包名.子包名.模块名 [as 模块新名]

 

from 包名 import 模块名 [as 模块新名]

from 包名.子包名 import 模块名 [as 模块新名]

from 包名.子包名.模块名 import 成员名 [as 属性新名]


# 导入包内的所有子包和模块

from 包名 import *

from 包名.模块名 import *

搜索顺序

sys.path 提供的路径

__init__.py 文件

是包内必须存在的文件

会在包加载时被自动调用

__all__

写在__init__.py文件中

标准库模块

import time

# 1. 获取当前时间戳(从1970年1月1日到现在经过的秒数)
# 1563326340.661173
print(time.time())
# 2. 获取当前时间元组(年,月,日,小时,分钟,秒,一周的第几天,一年的第几天,夏令时)
time_tuple = time.localtime()
print(time_tuple)
# 3. 时间戳 -->时间元组
print(time.localtime(15633263))
# 4. 时间元组 -- 时间戳
print(time.mktime(time_tuple))
# 5. 时间元组 -->  字符串
print(time.strftime("%y/%m/%d %H:%M:%S",time_tuple))
print(time.strftime("%Y/%m/%d %H:%M:%S",time_tuple))
# 6. 字符串 --> 时间元组
# "19/07/17 09:36:48"
print(time.strptime("19/07/17 09:36:48","%y/%m/%d %H:%M:%S"))
原文地址:https://www.cnblogs.com/NeverYa/p/11223857.html