Python基础 - 模块&datetime模块

模块(本篇内容均在PyCharm运行)

以往脚本基本是用 Python 解释器来编程,如果从 Python 解释器退出再进入,那么定义的所有的方法和变量就都消失了。

为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块(Module)。

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 Python 标准库的方法。

小汇总

  • 容器–> 数据的封装
  • 函数–> 语句的封装
  • 类 --> 方法和属性的封装
  • 模块–> 程序文件
#创建一个hello.py文件
#hello.py
def hi():
    prnt("Hi everyone, I love Python!")

命名空间

命名空间因为对象的不同,也有所区别,可以分为几种:

  • 内置命名空间(Built-in Namespaces):Python 运行起来,它们就存在了。内置函数的命名空间都属于内置命名空间,所以,我们可以在任何程序中直接运行它们,比如id(),不需要做什么操作,拿过来就直接使用了。
  • 全局命名空间(Module:Global Namespaces):每个模块创建它自己所拥有的全局命名空间,不同模块的全局命名空间彼此独立,不同模块中相同名称的命名空间,也会因为模块的不同而不相互干扰。
  • 本地命名空间(Function & Class:Local Namespaces):模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。

程序在查询上述三种命名空间的时候,就按照从里到外的顺序,即:Local Namespaces --> Global Namesspaces --> Built-in Namesspaces。

import hello

hello.hi()    # Hi everyone, I love lsgogroup!
hi()           # NameError: name 'hi' is not defined

导入模块

#创建一个模块Temp.py
def c2f(cel):
    fah = cel * 1.8 + 32
    return fah


def f2c(fah):
    cel = (fah - 32) / 1.8
    return cel

import 模块名

#import Temp.py并分别代入数值计算

import Temp

print('32摄氏度 = %.2f华氏度' % Temp.c2f(32))#代入c2f函数中计算
print('99华氏度 = %.2f摄氏度' % Temp.f2c(99))#代入f2c函数中计算

# 32摄氏度 = 89.60华氏度
# 99华氏度 = 37.22摄氏度

from 模块名import函数名

  • 不推荐使用from … import *,原因后文详解。
from Temp import c2f,f2c
print('32摄氏度 = %.2f华氏度'%c2f(32))
print('99华氏度 = %.2f摄氏度'%f2c(99))
# 32摄氏度 = 89.60华氏度
# 99华氏度 = 37.22摄氏度

import 模块名 as 新名字

import Temp as tp
print('32摄氏度 = %.2f华氏度'%tp.c2f(32))
print('99华氏度 = %.2f摄氏度'%tp.f2c(99))

if name == ‘main

  • 对于很多编程语言来说,程序都必须要有一个入口,而 Python 则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。
  • .py 文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py 文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
  • 具体案例,上一节有介绍。

搜索路径

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

import sys

print(sys.path)
 #['C:\\ProgramData\\Anaconda3\\DLLs', 'C:\\ProgramData\\Anaconda3\\lib', 'C:\\ProgramData\\Anaconda3', 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',...]`

原理

使用 import 语句的时候,Python 解释器是怎样找到对应的文件的呢?

这就涉及到 Python 的搜索路径,搜索路径是由一系列目录名组成的,Python 解释器就依次从这些目录中去寻找所引入的模块。

这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。

搜索路径是在 Python 编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在 sys 模块中的 path 变量中。
原理

使用 import 语句的时候,Python 解释器是怎样找到对应的文件的呢?

这就涉及到 Python 的搜索路径,搜索路径是由一系列目录名组成的,Python 解释器就依次从这些目录中去寻找所引入的模块。

这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。

搜索路径是在 Python 编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在 sys 模块中的 path 变量中。

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。

创建包分为三个步骤:

  • 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字。
  • 在文件夹中创建一个 init.py 的模块文件,内容可以为空。
  • 将相关的模块放入文件夹中。
案例:设计一套统一处理声音文件和数据的模块&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值