【Python】function、module、Package及import导入方法

计算机程序开发中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里面,这样,这个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,下面介绍一下Python中的一些基本概念:

基本概念

函数function
将一组代码组织到一起,实现某种功能

模块module
为实现某种逻辑将相关连的函数写在同一个文件里,使逻辑更清楚,这就是一个模块
在python中文件以.py 结尾,那这个.py文件就可以称之为模块,说白了,就是Python文件

库文件library
library,中文翻译为:库,也常称为:库文件
之所以此处不说是Python中的library,那是因为,本身library这个词,一般都是针对其他的编译型语言,比如C,C#等语言来说的。常见的C/C#等语言中的library,一般指的就是:
静态的库文件:xxx.a
动态的库文件:xxx.dll

Python中module和library之间的区别
对于library和module,说白了,都是提供了一定的功能供别人调用。
从这方面来说,也可以理解为:Python中library等价于module;
只不过,Python中,很少说library,正常的话,都是说module;

包Package
为了方便管理模块,python 中引入了包的概念
包是由关联的多个模块组成的目录,在每一个包下而都有一个__init__.py文件,这个文件必须存在
否则,Python就把这个目录当成普通目录,而不是一个包
init.py 可以是空文件,也可是有python代码,因为__init__.py本身就是一个模块

 

 

import 导入

使用import 关键字,可以将一个包中已出现的一个或多个函数或模块,引入到另一个python代码中,从而实现代码的复用

注意
1、如果是本地导入文件,直接使用:import filename
2、如果导入的是一个包,该包下面必须是有__init__.py文件才可以导入,否则报错,有了__init__.py文件,python解析器才会把这个目录当成是的包

使用module有什么好处呢?
最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

 

 

 

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

导入内置模块一般是这样的:

 

 

import os

如果不同的人编写的模块名相同怎么办?为了避免模块冲突,Python可以按Package来导入模块。
我们以我们经常用到的selenium包为例来讲一下import的三种方法:

 

我们先看一下selenium包的目录结构,如下图

 

selenium包的路径是在\Python 3.6.1\Lib\site-packages\selenium,一般第三方package都是在\Lib\site-packages\下

第一种导入模块方法:import modelName

import webdriver
driver = webdriver.Chrome()   #定义一个driver变量

这个时候我们发现报错,是因为selenium包下面有多个packages,有多个webdriver.py文件,这时我们可以通过具体包去导入

import selenium.webdriver
driver = selenium.webdriver.Chrome()   #定义一个driver变量

去selenium包目录下你会发现我们找不到webdriver.py文件,其实我们是导入了selenium包下面的webdriver包中的__init__.py文件,如图所示:

你可以看到这个文件里包含了各种浏览器的webdriver,在需要具体浏览器时,我们就可以自动定义webdriver,定义变量时需要用selenium.webdriver,因为我们导包时就是导入selenium.webdriver,你会发现这样有点麻烦。

这时我们可以使用第二种导入模块的方法:from package import modelName

from selenium import webdriver
driver = webdriver.Chrome()   #定义一个driver变量

其实这种方法还可以导入模块里面具体的函数:from modelName import functionName

第三种导入模块方式:import modelName as xx

import selenium.webdriver as sample
driver = sample.Chrome()   #定义一个driver变量

这个其实相当于将selenium.webdriver重命名,为了定义时方便

我们可以总结一下:
1.如果导入内置模块,一般是import modelName
2.如果需要导入包里面的所有模块,直接可以import packageName
3.如果需要导入具体包里面的模块或者模块里面的具体函数,使用from xx import yy
4.如果需要对导入的模块进行简单重命名,可以使用import modelName as xx

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中的import语句用于导入模块或,让我们可以在当前模块中使用其他模块或中定义的函数、类等。具体用法如下: 1. 导入模块 使用import语句可以导入一个模块,语法如下: ```python import module_name ``` 例如,导入Python标准库中的math模块: ```python import math ``` 导入后,可以使用math模块中定义的函数和变量,例如: ```python print(math.pi) # 输出圆周率π的值 print(math.sqrt(16)) # 输出16的平方根 ``` 2. 导入模块中的特定函数或变量 如果只需要使用模块中的某些函数或变量,可以使用from语句导入,语法如下: ```python from module_name import function_name, variable_name ``` 例如,从math模块中导入sin和cos函数: ```python from math import sin, cos ``` 导入后,可以直接使用这些函数: ```python print(sin(0.5)) print(cos(0.5)) ``` 3. 导入模块中的所有函数或变量 如果需要使用模块中的所有函数或变量,可以使用*通配符导入,语法如下: ```python from module_name import * ``` 例如,从math模块中导入所有函数和变量: ```python from math import * ``` 导入后,可以直接使用这些函数和变量: ```python print(pi) print(sqrt(16)) ``` 4. 导入自定义模块或 如果要导入自定义的模块或,需要保证模块或的路径在Python的搜索路径中。可以通过sys模块的path属性查看Python的搜索路径: ```python import sys print(sys.path) ``` 如果导入的是一个,需要在中定义一个__init__.py文件,该文件可以为空文件。这样Python才能识别这个文件夹为一个导入时可以使用以下语法: ```python import package_name.module_name ``` 例如,导入名为mypackage中的名为mymodule的模块: ```python import mypackage.mymodule ``` 导入后,可以使用该模块中定义的函数和变量。如果要导入模块中的特定函数或变量,也可以使用from语句。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值