编程范式
编程是 程序 员 用特定的语法+数据结构+算法 组成的代码来告诉计算机如何执行任务的过程 。
大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。 两种最重要的编程范式分别是面向过程编程和面向对象编程。
编程范式好比编程界不同的流派,只是一种规范,到底选哪种,可根据项目特点和个人习惯选择
面向过程编程
(Procedural Programming)
Procedural programming uses a list of instructions to tell the computer what to do step-by-step. 程序设计使用一系列指令来告诉计算机一步一步地做什么。
体现在函数
'''
面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式
优点:复杂的问题流程化,进而简单化
缺点:可扩展性差:某个过程修改后,其它所有涉及到该过程的过程可能都要修改
'''
import json
import re
def interactive():
name=input('>>: ').strip()
pwd=input('>>: ').strip()
email=input('>> ').strip() # 新加一个邮箱字段
return {
'name':name,
'pwd':pwd,
'email':email # 新加一个邮箱字段,其他的函数也要重新处理
}
def check(user_info):
is_valid=True
if len(user_info['name']) == 0:
print('用户名不能为空')
is_valid=False
if len(user_info['pwd']) < 6:
print('密码不能少于6位')
is_valid=False
if not re.search(r'@.*?\.com$',user_info['email']):
print('邮箱格式不合法')
is_valid=False
return {
'is_valid':is_valid,
'user_info':user_info
}
def register(check_info):
if check_info['is_valid']:
with open('db.json','w',encoding='utf-8') as f:
json.dump(check_info['user_info'],f)
def main():
user_info=interactive()
check_info=check(user_info)
register(check_info)
if __name__ == '__main__':
main()
如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便了。
面向对象编程
(Object Oriented Programing)
编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。
注解:
- 对象定义:核心就是对象二字,对象就是特征与技能的结合体。
- 强调:站在不同的角度,得到的分类是不一样的
体现在类
为什么要用面向对象?
- 优点1:使程序更加容易扩展和易更改,使开发效率变的更高
- 优点2:基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。
- 缺点:编程复杂度高