目录

  • 一 模块

  • 3.1 import

  • 3.2 from ... import...

  • 3.3 把模块当做脚本执行 

  • 3.4 模块搜索路径

  • 3.5 编译python文件

  • 3.6  标准模块

  • 3.7  dir()函数

  • 二 包

  • 2.2 import 

  • 2.3 from ... import ...

  • 2.4 __init__.py文件

  • 2.5  from glance.api import *

  • 2.6 绝对导入和相对导入

  • 2.7 单独导入包

一、模块

1. 什么是模块?

   一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

2. 为什么要使用模块?

  1. 如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。

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

3. 模块分类

  • 自定义模块
  • 内置标准模块(又称标准库)
  • 开源模块

自定义模块 和 开源模块的使用参考: http://www.cnblogs.com/wupeiqi/articles/4963027.html

模块的使用(import)

示例文件:spam.py,文件名spam.py,模块名为spam

下文以此模块示例

#spam.py
print('from the spam.py')

money=1000

def read1():
    print('spam->read1->money',money)

def read2():
    print('spam->read2 calling read')
    read1()

def change():
    global money
    money=0

1.1 知识点1

模块可以包含可执行的语句和函数的定义,这些语句的目的是初始化模块,它们只在模块名第一次遇到导入import语句时才执行(import语句是可以在程序中的任意位置使用的,且针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载到内存中的模块对象增加了一次引用,不会重新执行模块内的语句),如下 :

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#test.py
import spam     #只在第一次导入时才执行spam.py内代码,此处的显式效果是只打印一次'from the spam.py',当然其他的顶级代码也都被执行了,只不过没有显示效果.
import spam
import spam
import spam

'''
执行结果:
from the spam.py
'''
test.py

相关文章:

  • 2021-06-07
  • 2021-08-24
  • 2021-04-03
猜你喜欢
  • 2022-02-07
  • 2022-12-23
  • 2022-12-23
  • 2021-07-16
  • 2021-08-03
  • 2022-12-23
相关资源
相似解决方案