面向过程编程与模块

面向过程编程(理论)

面向对象编程就类似于造一条产品的流水线
面向过程编程的缺点是,一旦需要修改功能,那需要整体改造

模块简介

1.python起源
	python最早起源于linux运维,胶水语言,俗称调包侠(由贬到褒)
2.模块的定义
	模块是一系列功能集合体
3.模块的作用
	提高开发的效率,可以站在巨人的肩膀上
4.模块的三种来源
	内置(python解释器自带的,调用后直接使用)
    第三方(其他人写的放在放在网上,下载后可以使用)
    自定义(自己写的)
5.模块的四大表现形式
	用python编写的代码(.py文件)
    已被编译为共享库或DLL的c或c++的扩展
	包好一组模块的包(文件夹)
    c编写的链接到pthon解释器的内置模块
6.学了模块后的技巧
	以后在开发大型项目时,遇到比较复杂的功能时,看是否有相应的模块

两种句式

# 学习模块的注意点,在学习模块时,一定要搞清楚谁是导入文件,谁是模块
第一种句式结构:import 模块名	(导入py文件的时候,一定不要加文件后缀)
	1.多次导入相同的模块,只会执行一次
	2.导入模块之后,发生了什么?
    	运行导入文件,产生导入文件的全局名称空间
		运行模块文件
		产生模块文件的全局名称空间,运行模块文件内部代码,将产生的名字全部存档于模块文件的名称空间
		导入文件中会生成一个同模块名相同的名字,指向模块的名称空间
	3.如何在导入文件里使用模块文件里的名字
    	用模块名加点的方式即可使用,并且肯定不会产生冲突(指名道姓)

第二种句式结构:from 模块名 import 名字1,名字2
    1.多次导入也只会执行一次
    2.导入模块之后发生的事情
    	运行导入的文件,并产生导入文件的名称空间
		运行模块文件,并产生模块文件全局名称空间
		运行模块文件内部的代码,并将产生的名字全部存档于模块名称空间
		在执行文件中存在名字1,2指向模块名称空间中名字1,2指向的值

导入模块扩展用法

1.起别名
	可以给模块起别名,也可以给模块中的某个名字起别名
    	给模块起别名:import 模块名 as 新模块名
		给名字起别名:from 模块名 import 名字 as 新名字
2.连续导入
	连续导入多个模块:
    	末尾导入:import 模块1,模块2,模块3
        	适用条件:只有当几个模块功能相似或者属于一个系列时
		分行导入:
				import 模块1
				import 模块2i
				import 模块3
				import 模块4
			适用条件:如果模块功能不同,或者不属于一个系列时
	连续导入多个名字:
    	from  模块名 import 名字1,名字2,名字3
3.通用导入
	将模块中所有的名字全部导入:
    	from 模块名 import *
	如何限制他人使用全部的功能:
		只需要在模块文件中加入__all__ = ['名字1','名字2','名字3']
# 只有在中括号里面的,用户调用*功能时才会被使用,但是如果指名道姓的调用也是可以的

判断文件类型

判断文件是执行文件还是调用文件的方法?
	使用__name__方法。当文件是导入文件则返回的是__main__,当文件是模块文件是,返回的是模块名。
	if __name__ == '__main__':
        pass
在pycharm中,可以直接敲main,再按tab键,即可自动补全判断

循环导入

1.如果在导入模块时,出现循环导入的现象,那么说明程序设计的不合理
2.在编码生涯循环导入不允许出现
3.如何解决循环导入的问题
	方法1:将所有的模块导入放在文件的最后 (调换顺序)
	方法2:将模块导入放入函数体代码,当所有的名字加载完毕之后再调用函数

模块导入的顺序

1.查找顺序
	先从内存中查找>>>再去内置模块中查找>>>再去sys.path系统路径中查找
    (如果都没有则报错)
2.当前文件所在的路径怎么查?
	import sys
	print(sys.path)
    # 结果中第一个元素永远是当前文件所在的路径
3.当某个自定义模块找不到的时候,怎么办?
	方法一:手动添加模块路径到系统路径中
    	import sys
        sys.path.append(r'路径') # D:\py1\day\aaa
     方法二: from ……import……句式
    	from 文件夹名.文件夹名 import 模块名
        from 文件夹名.文件夹名 import 名字
        
posted @ 2021-11-23 20:17  recordlife  阅读(133)  评论(0编辑  收藏  举报