14-模块

作者: 飘摇的水草 | 来源:发表于2023-04-11 18:29 被阅读0次
简介
  • 模块就是一个 Python 代码文件,是别人已经写好的代码文件,文件中的函数类以及变量,我们都可以使用
  • 使用模块的好处:直接使用别人已经实现好的功能
模块的制作
  • 制作一个模块,就是定义一个 python 代码文件
  • 注意点:模块的名字要遵循标识符的规则
  • 想要使用模块中的内容,必须先导入模块
    • 方法一 import 模块名
    • 使用:模块名.功能名

下面是文件 my_module 里的代码

num = 1

def func():
    print "my_module func"

class Dog(object):

    def show_info(self):
        print "module 1 de show_info"

在另外一个模块里要想使用模块 my_module 里的代码则如下所示:

import  my_module
# 调用 my_module 模块中的变量num
print(my_module.num)
# 调用 my_module 模块中的func 函数
my_module.func()
# 调用 my_module 模块中的类创建对象
dog = my_module.Dog()
dog.show_info()
  • 方法二
    • from 模块名 import 功能名1

这种方式有个缺陷,当导入多个模块的时候如果存在同名的方法或变量会出现覆盖的情况
还是使用 my_module 里面的代码,方法二使用如下所示:

from  my_module import  func
from  my_module import  num

func()
print (num)
  • 方法三
    • from 模块名 import * #将模块中所有的功能进行导入

这种使用和方法二一致,直接使用即可,但这种模块不建议使用

from  my_module import  func
from  my_module import  num

func()
print (num)

起别名

可以使用 as 修改原来模块和函数的名字,但对原来的名字进行重新命名以后,老的名字将不能再使用

方法一将被改成下面这个样子:

import  my_module as mm1

mm1.func()
print(mm1.num)
dog = mm1.Dog()
dog.show_info()

方法二将被改成下面的样子:

from  my_module import  func as my_func
from  my_module import  num  as my_num

my_func()
print (my_num)
  • 注意:在导入模块时,要注意两个模块在同一目录下,否则需要添加路径

模块中的all 变量

all 变量可以在每个代码文件中(模块中)定义,类型是元组,列表,作用是:影响 from 模块名 import * 导入行为

  • 如果没有定义 __all__ 变量,模块中的所有功能,都可以被导入
  • 如果定义了 __all__ 变量,只能导入变量中定义的内容
__all__ = ['num','func']

num = 1
def func():
    print "my_module func"

如上面的代码所示,在其他代码里只能使用 numfunc 这两个变量,其他的不能使用

模块的搜索顺序

当前顺序 - 系统目录 - 程序报错

包:功能相近或者相似的模块放在一个目录中,并在目录中定义一个 __init__.py 文件,这个目录就是包,在 Pycharm 中下面的操作即是创建一个包

创建包.png

包的导入也有三个方法:

  1. 方法一 import 包名.模块名

包中的模块的代码如下所示:

num = 100

def func():
    print "my_module1里的func函数"

使用方式如下所示:

import  FirstPackage.my_module1

print FirstPackage.my_module1.num
FirstPackage.my_module1.func()
  1. 方法二: from 包名.模块名 import 功能名

代码和使用方式如下所示:

from FirstPackage.my_module2 import func

func()
  1. 方法三:from 包名 import *

这种方式不太常用,因为这种方式导入的内容太多

相关文章

网友评论

      本文标题:14-模块

      本文链接:https://www.haomeiwen.com/subject/fkuwddtx.html