python--------模块

本文介绍了Python模块的概念,包括标准库、第三方模块和自定义模块。讲解了`import`、`from...import`及`from...import *`的导入方式,探讨了模块搜索路径、函数覆盖问题及包的调用。还详细阐述了`time`模块的时间戳、格式化时间和结构化时间的转换,以及`sys`、`math`和`decimal`模块的功能和用法。
摘要由CSDN通过智能技术生成

模块概念

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码越来越长,越来越不容易维护,为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码相对较少,很多编程语言都采用这种组织代码的方式,在Python中,一个.py文件就被称之为一个模块(Module)

使用模块有什么好处:

  • 提高了代码的可维护性
  • 编写代码不必从零开始,当一个模块编写完毕,就可以被其他地方引用

模块一共三种:

  • python标准库
  • 第三方模块
  • 应用程序自定义模块

使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突

模块导入方法

import语句

在使用模块之前需要使用import语句导入模块

当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?答案就是解释器有自己的搜索路径,存在sys.path

import:
  1.执行对应文件
  2.引入变量名

我们建立一个模块包,并建立caltest两个脚本
在这里插入图片描述
cal建立函数:

...........cal.py
print('ok1')
def add(x,y):
    return x+y
def sub(x,y):
    return x-y
print('ok2')

test建立执行语句:
要想两个文件有联系,我们就需要用import导入
test文件里输入:

..........test.py
import cal

print(cal.add(2,3))
print(cal.sub(2,3))

运行结果

ok1
ok2
5
-1

这时我们会发现,import cal 会把cal里面的文件执行一遍,然后再把cal拿给当前的文件test使用

from…import 语句

我们也可以直接调用,不需要再输入cal.

#..............text.py

from cal import add
from cal import sub

print(add(2,3))
print(sub(2,3))

运行结果

ok1
ok2
5
-1

这个声明不会把整个cal模块导入到当前的命名空间中,只会将它里面的addsub单个引入到执行这个声明的模块的全局符号表

但是如果这样使用的话,如果定义函数很多的话,就不是很方便了,因此,我们可以用 * 代替所有的函数

from…import* 语句

这提供了一个简单的方法来导入一个模块中的所有项目

............test.py

from cal import *     
print(add(2,3))
print(sub(2,3))

运行结果

ok1
ok2
5
-1

然而这种声明不该被过多地使用。大多数情况, Python程序员不使用这种方法,因为引入的其它来源的命名,很可能覆盖了已有的定义

.............test.py
from cal import *
print(add(2,3))

运行结果

ok1
ok2
5
...........test.py
from cal import *
def add(x,y):
    return x+y+100
print(add(2,3))

运行结果

ok1
ok2
105

这就存在一个函数覆盖,在调用了cal之后下面又有一个add函数,这样它会把test里面add运行的结果覆盖到cal文件中add函数运行的结果

接下来我们在建立一个my_module包,把cal文件放到这个包里
在这里插入图片描述

这时我们会发现我们使用刚刚以上所有的调用方法都是不可行的

举一个列子

..........test.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值