美文网首页
Python学习(七)--包、模块

Python学习(七)--包、模块

作者: 白面葫芦娃92 | 来源:发表于2020-03-19 10:58 被阅读0次

引用其他包或者模块的变量/函数的两种方式

1.引用包t模块c7中的变量a

方法1:

import t.c7
print(t.c7.a)

或者

import t.c7 as m
print(m.a)

直接使用import最细粒度只能导入模块,不能直接导入一个变量
例如 import t.c7.a
方法2:

from t.c7 import a
print(a)

这种方式import最细粒度可以导入变量,当然也可以导入模块,但是,这样没什么太大意义,和直接import模块没什么区别

2.导入t.c7模块内的所有变量
from t.c7 import *
print(a)
print(b)
print(c)
3.导入t.c7模块内指定的若干个变量

方法1:
在t.c7上方添加

__all__ = ['a','c']

然后在现模块内

from t.c7 import *
print(a)
print(c)
print(d)

点击运行,发现print(a)和print(c)都可以执行成功,print(d)报错,因为并没有导入t.c7的变量d,没有在all里标出的都不能被其他模块引用
方法2:

from t.c7 import a,c
print(a)
print(c)

如果引用的变量很多(python规范一行字符不要超过80个),可以使用反斜杠\换行或者把所有变量用小括号()括起来

from t.c7 import a,b,\
c,d,e,f

或者

from t.c7 import (a,b,
c,d,e,f)

推荐用第二种方式

4.init.py文件的作用

(1)当一个包被导入时(不论是导入的包还是导入的包内的模块),该文件会自动被执行

#编辑包t的__init__.py文件
a = 'This is __init__.py file'
print (a)

在另一个包的c2.py文件中引用包t

import t

运行,结果会输出

> python ./c2.py
This is __init__.py file

(2)可以在init.py文件里限制哪些模块可以被其他模块引用
如包t内有c1.py和c2.py两个模块
在t内的init.py中限定只能引用模块c1

__all__ = ['c1']

那么在另一个包的某模块中,只能引用c1模块内的变量和函数,不可以引用c2模块内的变量和函数
(3)当每一个模块都需要导入数十个相同的库时,在每一个模块都输入很多的import很麻烦
可以在包t内的init.py文件中包含所有的import
然后,现模块导入包t,就可以避免重复输入很多的import了

5.几点注意事项

(1)包和模块不会被重复导入,只会执行一次
(2)要避免循环导入:即两个模块互相导入或者多个模块的导入链形成了闭环,最终的结果是本模块运行必须要导入本模块,这样是无法执行的
(3)当引入一个模块,程序运行时,所引用模块内的所有语句都会执行一遍,例如print语句,这个要注意,尽量明确要导入哪个变量或者函数,尽量避免导入整个模块

相关文章

  • Python学习(七)--包、模块

    引用其他包或者模块的变量/函数的两种方式 1.引用包t模块c7中的变量a 方法1: 或者 直接使用import最细...

  • python 2.7 -> python 3.7 升级记录

    更换的模块 python 3.7 模块名python 2.7 模块名python 3.7 包python 2.7包...

  • Python学习笔记

    Python学习笔记 模块 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package...

  • Python ☞ day 7

    Python学习笔记之 date & datetime & 模块 & 包 & 第三方模块安装 时间 UTC(世界协...

  • Python高阶

    包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...

  • python18-模块和包

    本篇主要是讲的是模块和包基本操作,包括模块在同一包内/不同包内的导入和调用等。在学习python的过程中模块是必不...

  • 核心开发

    Python核心开发 一.包和模块 1. 包和模块的定义 为了更加有好的对python代码进行管理,出现了包和模块...

  • Python包及其引入方法

    一、Python包 模块所在目录看做是包,目录名即为包名。 二、Python包创建 创建过程举例(模块中不包含类)...

  • python命名规范

    Google Python命名规范 module_name, 模块 package_name, 包 模块与包 ...

  • Python模块与包@2018-11-21

    Python模块与包 python语言中,如果希望实现代码的重用,除去使用类之外,模块与包是不错的选择。在此对模块...

网友评论

      本文标题:Python学习(七)--包、模块

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