模块,包

一.模块介绍

   1.什么是模块

       模块就是一系列功能的集合体

    2.模块的来源

      1).内置的模块

      2).第三方的模块

      3).自定义模块

    3.模块的类别

      1).使用python编写的.py文件

      2).已被编译为共享库或DLL的C或C++扩展

      3).把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包

      4).使用C编写并链接到python解释器的内置模块

    4.为何要用模块

        1).使用内置的或者第三方模块的好处是:拿来主义,可以极大提升开发效率

        2).使用自定义模块的好处是:可以减少代码冗余(抽取我们自己程序中要公用的一些功能定义成模块,然后程序的各部分组件 都去模块中调用共享的功能

    5.如何用模块

      大前提:一定要区分开谁是执行文件,谁是被导入模块

二.使用模块之import

     1.import的使用 

       文件名是spam.py,模块名则是spam

       首次导入import spam 模块发生3件事

      1).会产生一个模块的名称空间

      2).执行文件spam.py,将执行过程中产生的名字都放到模块的名称空间中

      3).在当前执行文件的名称空间中拿到一个模块名,该名字指向模块的名称空间

         之后导入import spam,都是直接引用第一次导入的成果,不会重新执行文件

         在执行文件中访问模块名称空间中名字的语法:模块名.名字

        print(spam.x)#指明道姓地跟spam要名字x,肯定不会与当前执行文件中的名字冲突

   总结:import导入模块,在使用时必须加上前缀:模块名.

   优点:指明道姓的向某一个名称空间要名字,肯定不会与当前名称空间中的名字冲突

   缺点:但凡应用模块中的名字都需要加前缀,不够简洁

2.被导入的模块有独立的名称空间

 每个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,这样我们在编写自己的模块时,就不用担心我们定义在自己模块中全局变量会被导入时,与使用者的全局变量冲突

# spam.py:
# --------------------------------------
# print("from the spam.py")
# money = 1000
# def read1():
#     print("spam 模块:", money)
#
# def read2():
#     print("spam 模块")
#     read1()
#
# def change():
#     global money
#     money = 0
#
# -----------------------------------------

import spam
# money=10
# print(spam.money)

"""
from the spam.py
1000
spam 模块: 1000

"""

# def read1():
#     print("------------")
# spam.read1()

"""
from the spam.py
spam 模块: 1000
"""

# import spam
#
# money=1
#
# spam.change()
#
# print(money)

"""
from the spam.py
1

"""

   3.为模块名起别名

     为已经导入的模块起别名的方式对编写可扩展的代码很有用

     import spam as sm

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值