1.8.1 python模块和包 __name__

1.python的模块:以py为结尾的文件称作模块。分为自定义模块、系统模块(import os

import csv、import random、import time、import json、import pickle......


(1)方法1:  import模块名 #模块导入格式

         使用:模块名.函数(参数)

(2)方法2:from模块名 import函数1,函数2,变量名  #使用模块中的哪些功能则导入哪个

          使用:函数(参数)

(3)方法3:from模块名 import *   #使用* 导入, 导入该模块中的所有内容

          使用:函数(参数)

            注意:* 表示导入该模块中的所有内容

                    但是如果想限制某些导入的内容可以在模块中加__all__=[可以被外界访                 问的内容写到列表中]进行限制

   (4)# 给导入的模块起别名

            方法4:import numpy as np 

            方法5:from numpy import add as a 

            作用: 尽量简化代码,防止混淆\

    (5)#  当导入模块时,会默认将模块文件从上到下执行1遍。

案例1 写如下模块(py文件)


分析:1.此模块名为:module01,模块中可调用的变量有:number,names, add(*args), func()

2. 因模块中有__all__=['add','names'],当导入方法为from module01 import *,外界只能用add,和names两个功能。 模块里的__all__限制的是模块里的哪些功能可以使用。


2.包:一个模块就是一个py 文件,在Python 里为了对模块分类管理,就需要划分不同的文件夹。多个有联系的模块可以将其放到同一个文件夹下,为了称呼方便,一般把Python 里的一个代码文件夹称为一个包。

python的包:多个有联系的模块可以将其放到同一个文件夹下,而此文件夹下还存在一个__init__.py的文件,则将此文件夹称作为python包

(1)包中模块的导入:

(1.如果使用import

import包名.模块名

使用:

包名.模块名.函数()

包名.模块名.变量名

(2. from...import

from包名.模块名 import函数名,变量

使用函数名()


注:如直接import demo01, 默认从项目文件下找,如果项目文件下和mydir文件夹下都有demo01,会默认选中项目文件下的,如果重名不会成功,因为当前的文件夹里不能有和导入的项目文件下的demo01重名的。所以import 下要基于项目文件写,写文件名.包名。

(3     __init__.py     

# 可以把每次导入的公共的任务放在__init__里,如没有,可以空。

比如 __init__.py放在mydir文件夹里,,import mydir.module01,此时__init__.py会执行

# __all__限制本包里模块的使用,如果__init__没有__all__,导入*,无法使用任何模块。(读源码时需要知道此作用。只有__all__里有的模块可以访问。


(4      _ _name_ _:

自身执行py文件名字:__main__

如果是导入执行(from),__name__打印的就是模块名: module01

  #  当导入模块时,会默认将模块文件从上到下执行1遍。如果希望模块文件部分代码自己运行可以用,被其他导入时无法使用,可借助__name__,

if __name__ =='__main__':

pass  (#此代码只有本文件执行才让其运行)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。