关于本篇博文:

面向对象中所有的内容的重新梳理,其实面向对象的知识早在一个多月前就学习过并整理过,但是发现还是有所欠缺,故在此以极其简介的语言风格重新梳理一遍

面向对象详细介绍:http://www.cnblogs.com/wyb666/p/8728621.html

参考文章:http://www.cnblogs.com/linhaifeng/articles/6182264.html

 

 

 

一、面向过程与面向对象

1.面向过程

 1 # 面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式
 2 # 优点:复杂的问题流程化,进而简单化
 3 # 缺点:可扩展性差
 4 # 以下是面向过程的实例(用户注册),用户注册的流程为:用户输入信息->判断用户信息是否合法->合法就保存用户数据 
 5 import json
 6 import re
 7 
 8 
 9 def interactive():
10     """
11     用户输入信息
12     :return: 以字典形式返回注册账号的信息
13     """
14     name = input('name>>>').strip()
15     pwd = input('password>>>').strip()
16     email = input('email>>> ').strip()
17     return {
18         'name': name,
19         'pwd': pwd,
20         'email': email
21     }
22 
23 
24 def check(user_info):
25     """
26     判断用户输入信息是否正确
27     :param user_info: 用户信息
28     :return: 返回字典(用户信息及合法性)
29     """
30     is_valid = True                 # is_valid表示合法性
31     # 判断用户名的合法性
32     if len(user_info['name']) == 0:
33         print('用户名不能为空')
34         is_valid = False
35     # 判断密码的合法性
36     if len(user_info['pwd']) < 6:
37         print('密码不能少于6位')
38         is_valid = False
39     # 判断邮箱格式的合法性
40     if not re.search(r'@.*?\.com$', user_info['email']):
41         print('邮箱格式不合法')
42         is_valid = False
43     return {
44         'is_valid': is_valid,
45         'user_info': user_info
46     }
47 
48 
49 def register(check_info):
50     """
51     如果合法就注册用户(把用户信息导入json文件中)
52     :param check_info: 包含用户信息及合法性的字典
53     :return: 
54     """
55     if check_info['is_valid']:
56         with open('db.json', 'w', encoding='utf-8') as f:
57             json.dump(check_info['user_info'], f)
58 
59 
60 # 程序主函数
61 def main():
62     user_info = interactive()
63     check_info = check(user_info)
64     register(check_info)
65 
66 
67 # 程序主入口
68 if __name__ == '__main__':
69     main()

 

 

2.面向对象

 1 # 面向对象:核心就是对象二字,对象就是特征与技能的结合体
 2 # 优点:可扩展性强
 3 # 缺点:编程复杂度高
 4 # 应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用
 5 
 6 # 类就是一系列对象相似的特征与技能的结合体  强调:站在不同的角度,得到的分类是不一样的
 7 # 另外在现实世界中一定先有对象,后有类; 在程序中一定得先定义类,后调用类来产生对象
 8 
 9 
10 # 先定义类
11 class Student:
12     # 特征:
13     school = 'luffycity'
14 
15     # 技能:
16     def learn(self):
17         print('is learning')
18 
19     def eat(self):
20         print('is sleeping')
21 
22 
23 # 后产生对象
24 stu1 = Student()
25 stu2 = Student()
26 stu3 = Student()
27 
28 print(stu1)
29 print(stu2)
30 print(stu3)

 

 

 

二、面向对象入门

1.类与对象的基本使用

(1)类的定义

 1 # 定义类
 2 class Student:
 3     # 数据属性
 4     school = 'luffycity'
 5 
 6     # 函数属性
 7     def learn(self):
 8         print('is learning')
 9 
10     def eat(self):
11         print('is sleeping')
12 
13 
14 # 查看类的名称空间
15 print(Student.__dict__)
16 print(Student.__dict__['school'])
17 print(Student.__dict__['learn'])
18 print(Student.__dict__['eat'])
19 
20 #
21 print(Student.school)   # Student.__dict__['school']
22 print(Student.learn)    # Student.__dict__['learn']
23 print(Student.eat)    # Student.__dict__['eat']
24 
25 #
26 Student.county = 'China'
27 print(Student.__dict__)
28 print(Student.county)
29 
30 #
31 del Student.county
32 
33 #
34 Student.school = 'oldboy'
1 #python为类内置的特殊属性
2 类名.__name__# 类的名字(字符串)
3 类名.__doc__# 类的文档字符串
4 类名.__base__# 类的第一个父类(在讲继承时会讲)
5 类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
6 类名.__dict__# 类的字典属性
7 类名.__module__# 类定义所在的模块
8 类名.__class__# 实例对应的类(仅新式类中)
类内置的特殊属性

相关文章:

  • 2021-11-17
  • 2021-05-06
  • 2021-06-25
  • 2021-06-14
  • 2021-07-17
  • 2022-02-04
  • 2021-11-13
猜你喜欢
  • 2021-05-27
  • 2021-06-26
  • 2021-12-20
  • 2021-10-13
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案