python模块_python模块介绍

本文详细介绍了Python中的模块和包的使用,包括导入机制、__name__属性的作用以及dir()函数的使用。通过示例展示了如何导入和使用模块中的函数,以及如何组织和导入包内的模块。强调了from...import...与import的区别,并解释了__main__检查在模块执行中的重要性。
摘要由CSDN通过智能技术生成

一、简介

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被其他程序导入来使用模块具有的功能。这也是使用python标准库的方式。

import time
start_time = time.perf_counter()
i = []
for x in range(10):
   if x%2 == 0:
      i.append(x)
print(i)
end_time = time.perf_counter()
print(end_time - start_time)

0894fc2e824b3783c507be568fd9a7be.png

首先使用import导入time包,这样意味着我们能够使用time包里的所有公共内容。最后利用time包的相关计时功能计算出该程序执行时长。调用模块可以减少函数的重复使用,精简代码。

二、from … import … 语句和import语句。

from sys import argv 表示从sys模块中导入了argv(可以是类,函数,变量等)。

form sys import *表示从sys模块中导入了所有内容。

import sys表示引入sys包。

例子:

在test001.py中有这样一些函数:

def add(a, b):
   print(a + b)
def sub(a, b):
   print(a - b)
def mul(a, b):
   print(a * b)
def divide(a, b):
   print(a / b)

在test002中三种导入方式:

1、from sys import argv 导入

from test001 import add

add(10, 5)

44c4e0338b896b3e61b364683fedf5c8.png

这个操作表示从test001模块中导入add函数,可以直接使用,而不用再重新写函数。

2、form sys import * 导入

from test001 import *
add(10, 5)
sub(12,6)
mul(12,0.3)
divide(1,5)

b46811b602fe51a86d920b4dad991b0e.png

该操作表示从test001中导入例如所有函数功能,我们能够看到,在test001中的四个函数我们都能够使用。

3、import sys 导入

import test001
test001.add(10, 5)
test001.sub(12,6)
test001.mul(12,0.3)
test001.divide(1,5)

53a887967f6086a55262b1f3d7d61466.png

使用import test001导入内容时,要指定模块的那个功能,否则系统会报错。

from…import注:相当于导入的是一个文件夹中的文件,是个绝对路径。而import 模块:相当于导入的是一个文件夹,是个相对路径。因此在使用模块中的函数时一定要指定是那一个模块。

三、__name__属性

在每一个模块中都会有一个__name__属性,表示这个主程序在当前模块程序,但当导入到其他模块时,主模块不执行。

if __name__ == “__main__”:
	print(’当前模块执行’)
else:
	print(‘在其他模块导入当前模块时执行’)

2e24869951c91bd0ecf7a1e94a5c336e.png

ebd30cdb3078226191b8ae2b27603543.png

每个模块都有一个__name__属性,当其值是”__main__”时,表示模块自身在执行,否则被引入。

__name__和__main__都是双下划线,并且都是英文符。

四、dir函数

内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回。

ba1e13f46ba9739f7c17dce9db21112a.png

导入sys模块后,我们能看到sys的相关属性列表,它返回的是当前模块的属性列表。当我们重新定义一个变量a,并且用dir()查看时,我们得到了当前模块中定义的属性列表。使用del删除a后,重新查看,我们能够看到其中存在的区别。

五、python包

包是模块的文件夹,有一个特殊的__init__.py 文件,用来表明这个文件夹是特殊

的因为其包含有Python 模块。包仅仅是为了方便层次化地组织模块。

blog/
	__init__.py
	A/
		__init__.py
		test.py
	B/
		__init__.py

8e95ee5d6c9e3e59619f1bbeec51769f.png

如上面所示,在这个例子中,有三个python包,blog/叫做顶层包,A/和B/叫做子包。test.py表示子包下的python模块。

包的导入(导入test模块为例):

import blog.A.test 
from blog.A import test

这两种方式都是表示导入A包下的子模块。如果要导入模块下的某一函数,则应该这样做:from blog.A.test import add,表示导入test模块中的add函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值