编程范式

编程是 程序 员 用特定的语法+数据结构+算法 组成的代码来告诉计算机如何执行任务的过程 。

大多数语言只支持一种编程范式,当然也有些语言可以同时支持多种编程范式。 两种最重要的编程范式分别是面向过程编程和面向对象编程。

编程范式好比编程界不同的流派,只是一种规范,到底选哪种,可根据项目特点和个人习惯选择

面向过程编程

(Procedural Programming)

Procedural programming uses a list of instructions to tell the computer what to do step-by-step. 程序设计使用一系列指令来告诉计算机一步一步地做什么。

体现在函数

  1. '''
  2. 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式
  3. 优点:复杂的问题流程化,进而简单化
  4. 缺点:可扩展性差:某个过程修改后,其它所有涉及到该过程的过程可能都要修改
  5. '''
  6. import json
  7. import re
  8. def interactive():
  9. name=input('>>: ').strip()
  10. pwd=input('>>: ').strip()
  11. email=input('>> ').strip() # 新加一个邮箱字段
  12. return {
  13. 'name':name,
  14. 'pwd':pwd,
  15. 'email':email # 新加一个邮箱字段,其他的函数也要重新处理
  16. }
  17. def check(user_info):
  18. is_valid=True
  19. if len(user_info['name']) == 0:
  20. print('用户名不能为空')
  21. is_valid=False
  22. if len(user_info['pwd']) < 6:
  23. print('密码不能少于6位')
  24. is_valid=False
  25. if not re.search(r'@.*?\.com$',user_info['email']):
  26. print('邮箱格式不合法')
  27. is_valid=False
  28. return {
  29. 'is_valid':is_valid,
  30. 'user_info':user_info
  31. }
  32. def register(check_info):
  33. if check_info['is_valid']:
  34. with open('db.json','w',encoding='utf-8') as f:
  35. json.dump(check_info['user_info'],f)
  36. def main():
  37. user_info=interactive()
  38. check_info=check(user_info)
  39. register(check_info)
  40. if __name__ == '__main__':
  41. main()

如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,但如果你要处理的任务是复杂的,且需要不断迭代和维护 的, 那还是用面向对象最方便了。

面向对象编程

(Object Oriented Programing)

编程是利用“类”和“对象”来创建各种模型来实现对真实世界的描述。

注解:

  • 对象定义:核心就是对象二字,对象就是特征与技能的结合体。
  • 强调:站在不同的角度,得到的分类是不一样的

体现在
为什么要用面向对象?

  1. 优点1:使程序更加容易扩展和易更改,使开发效率变的更高
  2. 优点2:基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。
  3. 缺点:编程复杂度高