python高阶6 面向对象重新梳理

Posted wyb666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python高阶6 面向对象重新梳理相关的知识,希望对你有一定的参考价值。

关于本篇博文:

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

面向对象详细介绍:http://www.cnblogs.com/wyb666/p/8728621.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

 

(2)__init__方法(构造函数)及对象的定义

 1 # __init__方法用来为对象定制对象自己独有的特征
 2 class Student:
 3     school = luffycity
 4 
 5     # 构造函数
 6     def __init__(self, name, sex, age):
 7         self.Name = name
 8         self.Sex = sex
 9         self.Age = age
10 
11     def learn(self):
12         print(is learning)
13 
14     def eat(self):
15         print(is sleeping)
16 
17 
18 # 定义对象
19 stu1 = Student(王二丫, , 18)  # Student.__init__(stu1,‘王二丫‘,‘女‘,18)
20 
21 # __init__方法后实例化的步骤:
22 # 1、先产生一个空对象stu1
23 # 2、Student.__init__(stu1,‘王二丫‘,‘女‘,18)
24 
25 # 对象的操作:
26 #
27 print(stu1.__dict__)
28 
29 #
30 stu1.Name = 李二丫
31 print(stu1.__dict__)
32 
33 
34 # 删除
35 del stu1.Name
36 print(stu1.__dict__)
37 
38 #
39 stu1.class_name = python开发
40 print(stu1.__dict__)

 

 

2.属性查找与绑定方法

 

 

3.python中一切都是对象

 

 

4.面向对象可拓展性总结与练习

 

 

 

 

三、面向对象进阶

 

以上是关于python高阶6 面向对象重新梳理的主要内容,如果未能解决你的问题,请参考以下文章

重新梳理IT知识之java-05面向对象

Python_面向对象_高阶函数

Python面向对象高阶

Python 抽象篇:面向对象之高阶

重新梳理IT知识之java-05面向对象

python 面向对象基础梳理三 继承派生与组合