面向过程编程与模块

Posted quqinchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向过程编程与模块相关的知识,希望对你有一定的参考价值。

1、面向过程编程

 核心是过程二字,过程是指解决问题的步骤,即先干什么,然后干什么

基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式;

优点 :复杂的问题流程化,进而简单化

缺点:扩展性极差

 

2、模块的使用

1、什么是模块?

模块是一些列功能的集合体,常见的模块形式(自定义模块,第三方模块,内置模块):

(1)一个module.py就是一个模块,文件名是module.py,而模块名是module;

(2)一个包含有__init__.py文件的文件夹也是模块

(3)已被编译为共享库或DLL的c或C++扩展

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

2、为什么要用模块

(1)用第三方或者内置的模块是一种拿来主义,可以极大的提高开发效率;

(2)自定义模块即将我们自己程序中需要用到的公共的功能写入一个python 文件;然后程序的各部分组件可以通过导入的方式来引用/重用自定义模块中的功能

 

3、如何用模块

导入方式有两种

(1)inport 模块名

import首次导入模块的过程
1、以模块为准创造一个模块的名称空间
2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
3、在当前执行文件中拿到一个模块名
import spam
import spam #spam=spam=模块名称空间的内存地址
模块的重复导入会直接引用之前创造好的结果,不会重复执行模块文件

(2)from 模块名 import 具体功能

导入过程:

1,、以模块为准创造一个模块空间

2、执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间;

3、在当前执行文件的名称空间中拿到一个名字,该名字直接指向模块中的摸一个名字,可以不用加任何前缀而直接使用

(3)from..import ..对比inport....

优点:不用加前缀,代码更为精简

缺点:容易与当前执行文件中名称空间的名字冲突

相同点:都会执行模块对应的文件,都会产生模块的名称空间;调用功能时需要到定义阶段寻找作用域关系,与调用位置无关

不同点:一种需要加前缀,一种不需要加前缀

 

 

 

4、模块的搜索路径

一个py文件就是一个模块,在导入时必须从某一个文件夹找到该py 文件

模块的搜索路径指的是在导入模块时需要检索的文件夹

导入模块时查找模块的顺序是:

1、先从内存中已经导入的模块中寻找;

2、内置模块;

3、环境变量sys.path中找

(sys.path的第一个值是当前执行文件所在的文件夹)

import sys
print(sys.path) #查找当前执行文件的路径

import sys  #导入sys模块
(sys.path).append(r‘F:objectpython2期day 15‘) #当前执行文件的路径与所调用的模块路径不一致
# 那么将所调用的模块路径加入环境变量
import mokuai #导入模块
mokuai.index() #导入模块的某一功能

5、软件开发的目录规范
ATM 项目名
bin 可执行文件入口
start 代码
conf 数据库路径,配置信息,所有文件都可以引用
settings
lib 共享功能
common
core 核心逻辑,源代码
src
db 数据文件
db.txt
log 记录日志,操作信息,错误信息
log.txt
Readme 项目使用规范,注意事项介绍



 

































以上是关于面向过程编程与模块的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

面向对象与面向过程编程

面向对象的编程

面向面试编程代码片段之GC

面向对象编程与面向过程编程的区别(翻译版)