python学习笔记(模块)

一.python项目组织结构

  1. 包——相对于文件夹
  2. 模块——相当于文件夹下面的文件
  3. 类——函数、变量

一个模块中可以写多个类

1.包和模块的命名

区分不同包的同名模块,比如

seven.c4 \  six.c4 即命名空间。

一个包下,还可以有子包,模块可以与子包平级。

包在物理表现下是一个文件夹,但文件夹并不等同于包。

文件夹必须包含__init__.py才能等同于包。

__init__.py也是一个包,它的名字就是包的名字seven!

2.导入模块 

(1)import导入模块

import 包名.模块名

如果想要某个模块中的内容在其他模块里也能使用,就需要进行模块的导入

可以使用import来导入模块,只能导入模块

格式为:import 模块名(要求两模块必须在同一个包等级下)

如果不在同一等级下,则应该写为 import 包名.模块名

在导入后,想要引用模块下的某个变量可以用 模块名.变量

可以使用as 关键字,另外起名,方便调用

(2)from import 导入变量

from import 引入的是 变量(也可以引入模块,不常用)

 

1.如果只导入某个变量,可以使用from-import来导入变量

http://img.mukewang.com/szimg/60eadcfd086a007001960077.jpg

此时再引用a,不需要再写t.c7.a,而只需要正常写a即可

http://img.mukewang.com/szimg/60eadd82081b0bb501670069.jpg

同理,写成上图所示也可以

2.如果想要导入某个模块中的许多变量,则可以用*来代替

http://img.mukewang.com/szimg/60eade5b088716d802140116.jpg

如何让*只导入需要的文件:

在被引用的模块相应位置加入:__all__ = [需要的变量n,需要的变量m]

3.__init__.py的用法

  1. 当包被导入(import)的时候,python会首先自动执行__init__.py文件
  2. 导入包中的模块或模块的变量,也会先运行__init__.py文件
  3. 具体应用1:在__init___.py中使用__all__['模块1','模块2']来限定导入包时,使用*只能导入模块1和模块2的内容
  4. 在__init__.py中批量引用系统库,则import包后即可使用这些库

4.常见错误

  1. 包和模块是不会被重复导入的
  2. 避免循环导入(在A模块中引入B模块,同时在B模块中引入A模块)(多个模块中形成闭环也一样),否则会死循环

5.模块内置变量

dir()函数可以返回模块中所有变量,包括自己定义的变量与系统内置变量,其中系统内置变量一般会是“__变量__”格式

内置变量:

  1. __name__ :命名空间
  2. __package__ :包的名称
  3. __doc__ :模块的注释(即三引号的注释,不是#的注释)
  4. __file__ :文件路径

6.入口文件和普通模块内置变量的区别

入口文件的定义:主动运行的那个主文件就叫做入口文件,其它在此文件中引用的称为模块

如果一个.py文件被当做应用文件入口(入口文件),则其内置函数反应如下:

  1. __name__:__main__(不是模块名)
  2. __package__:NoneType,即被视作不属于任何包
  3. __doc__:根据有无注释决定
  4. __file__:与python的文件存储有关,与执行目录有关

7.__name__的经典应用

if __name__ == '__main__':

    pass

判断其是否是入口文件还是一般的模块。

如果作为模块导入,就不会允许if __name__下面的语句,反之则会。

8.相对导入和绝对导入

  1. 顶级包:一个模块的顶级包由其与入口文件main.py的关系决定(与入口文件同级的包),即为该包下所有模块的顶级包.因此,在入口文件中导入模块时,格式应为:(import 顶级包.次级包.次次级包.模块名)
  2. 绝对导入:要从顶级包开始导入(import 顶级包.次级包.次次级包.模块名)
  3. 相对导入:用‘.’表示当前目录(同级目录);‘ ..’表示上级目录;‘...’表示上上级目录,以此类推
  4. import不支持相对导入,要用from-import
  5. 入口文件不支持相对导入, 要用绝对导入
  6. 相对导入, 无法超过顶级包
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值