python入门学习篇十七


面向过程编程

# 面向过程 核心是过程二字,即先干什么,在干什么,最后干什么

eg:
    把大象放冰箱分几步?
        1. 打开冰箱门
        2. 把大象塞进去
        3. 把冰箱门关上
'''面向过程不是一门技术,是一种做事的思想''' 

# 注册用户的功能
    1. 获取用户名和密码
    2. 验证参数
    3. 保存数据
    
'''
面向过程的缺点:扩展性很差
面向过程的优点:复杂的功能简单化
使用场景:对扩展性要求不高的地方使用面向过程
'''

模块的简介

1. 什么是模块?
    一系列功能的集合
2. 为什么要用模块?
    提高开发效率,站在巨人的肩膀
3. 模块的分类:
    1. 内置的: python解释器中已经存在的,time
    2. 第三方的: 别人已经写好的,上传到网上了
    3. 自定义的:自己写的
4. 模块的表现形式:
    1 使用python编写的代码(.py文件)# 一个py文件就是一个模块
   2 已被编译为共享库或DLL的C或C++扩展
   3 包好一组模块的包
        # 包:多个py文件的组合就是一个包
   4 使用C编写并链接到python解释器的内置模块

import句式

# 在学习模块的时候,首先分清楚谁是执行文件,谁是导入文件
import md  # 导入的模块不要加后缀

'''
    模块被导入:
        1. 模块会执行,但是导入多次,只会执行一次
        
    模块首次被导入的时候发生了什么事?
        1. 运行执行文件,产生一个执行文件的全局名称空间
        2. 运行被导入文件
        3. 导入文件中的名字放入到导入文件的名称空间
        4. 在执行文件的名称空间中有一个md的变量指向导入文件的名称空间
    
    import句式注意事项:
        1. 在自己的名称空间中如果有与导入文件相同的名字,
            在调用的时候,指名道姓的调用,不会产生冲突的
'''
# money = 999
# print(md.money)
# md.change()

from...import句式

from md import money,read1,read2
'''
    from...import句式:
        1. 导入模块的时候,导入文件会执行
        
    连续导入:
        from md import money,read1,read2
    
    from...import句式首次被导入:
        1. 产生一个执行文件的名称空间
        2. 会运行导入文件
        3. 产生一个导入的名称空间
        4. 在执行文件中产生一个money,执行导入文件的money,导入文件中的其他没有被导入的不能在
            执行文件中使用,如果想使用,继续导入过来就可以使用
        
'''
# money = 999
# print(money)
read1()
read2()

模块知识的补充

1. 起别名
    给模块名可以起别名,也可以给模块中的某一个名字起别名
    import mdddddddddddddddddddddddddd as d
    # print(mdddddddddddddddddddddddddd.a)
    print(d.a)

    from md import read1 as r
    r()
2. 连续导入
    import time
    import os
    import sys

    # import time,os,sys
    from mdddddddddddddddddddddddddd import a,b,c,d
3. 通用导入
    # from md import read1, read2, money
    from md import *
    # import md
    # read2()
    # read1()

    read1()
    read2()
    print(money)

判断文件类型

# 判断一个py文件是执行文件还是当成模块导入的文件
# print(__name__, type(__name__)) # '__main__'


import mdddddddddddddddddddddddddd

'''
    __name__:
        如果在执行文件中打印,结果是__main__,并且是字符串类型
        如果是导入文件,结果是模块名
'''

if __name__ == '__main__':
    test()

模块的查找顺序

1. 先从内存中查找
2. 从内置中查找
3. 从sys.path中

# 如果你想在你的执行文件中找不到模块的时候,解决方案:
    1. 把模块所在的路径加入到sys.path中

相关