Python 模块和包的使用

发布于 更新于
本文目录
  1. 一、模块和包的定义
  2. 二、模块和包的作用
  3. 三、模块和包的使用
  4. 1. 方式一:from module import var,func,cls
  5. 2. 方式二:from module import var as other_var
  6. 3. 方式三:from pkg.module import var,func,cls
  7. 4. 方式四:from pkg import module
  8. 5. 方式五:**from module import ***
  9. 6. 方式六:import var,func,cls

技术文章测试开发

一个python的文件就叫做模块(module),如xxx.py。模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。

一、模块和包的定义

  1. 一个python的文件就叫做模块(module),如xxx.py。模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能。

  2. 一个包含有__init__.py文件的目录或文件夹就叫做包(package)。在pycharm中选择python package创建的目录就是一个包。

二、模块和包的作用

  1. 从文件级别组织程序,更方便管理 随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用

  2. 拿来主义,提升开发效率 同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率

  3. 包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来。 随着功能越写越多,我们无法将所以功能都放到一个文件中,于是我们使用模块去组织功能,而随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性

三、模块和包的使用

  • 项目结构如下图所示,要求:在test.py下调用模块文件中的变量、函数等。

    图片.png
  • module1.py中代码

  • name = 'zhangsan'
    
    def hello():
        print('hello world')
  • module2.py中代码

  • age = 18
    
    class Speak():
        def speak_chinese(self):
            print('说汉语')

1. 方式一:from module import var,func,cls

  • 注意:导入模块名和当前的py文件必须在同一级目录

1.1 实现在test.py中调用module2模块中的内容

from module2 import age,Speak

print(age)
man = Speak()
man.speak_chinese()

2. 方式二:from module import var as other_var

2.1 要求:test.pyt中存在有与module2相同的变量名,要求同时使用2个变量名

from module2 import age as m2_age

age = 20
print(age)
print(m2_age)

3. 方式三:from pkg.module import var,func,cls

3.1 实现在test.py中调用module1模块中的内容

from dir.module1 import name,hello

print(name)
hello()

4. 方式四:from pkg import module

注意:调用模块中的变量、函数和类名时,要用模块名.变量或者模块名.函数或者模块名.类名方式来调用

4.1 实现在test.py中调用module1模块中的内容

from dir import module1

print(module1.name)
module1.hello()

5. 方式五:**from module import ***

注意:这种方式是将模块中的所有变量、函数和类名导入,不推荐使用这种方式,容易导致名字重复的冲突。

5.1 实现在test.py中调用module2模块中的内容

from module2 import *

print(age)
man = Speak()
man.speak_chinese()

6. 方式六:import var,func,cls

注意:python的内置模块可以使用这种方式,也可以用from module import var,func,cls方式来进行代替

6.1 实现在test.py中调用内置模块time中的内容

import time
time.sleep(2)

from time import sleep
sleep(2)

来源:testingpai

继续阅读