python的面向对象和类与对象

# 面向过程编程
#     核心是过程二字,过程指的是解决问题的步骤,即先干什么在干什么然后干什么
#     基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式
#
#     优点:复杂的问题流程化,进而简单化
#     缺点:扩展性差
#
# 面向对象编程
#     核心对象二字,对象是特征与技能的结合体
#     基于该思想编写程序就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式
#
#     优点:可扩展性强
#     缺点:编程的复杂度要高于面向过程
#
#
# 二。类:种类。分类。类别
#         对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体
#         强调:站的角度不同,总结出来的类是截然不同的
#
#         在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才有了分类的概念
#         在程序中:必须在先定义类,后调用类来产生对象
#
#
# 站在老男孩选课系统的角度,先总结现实世界中的老男孩学生对象
# 对象1:
# 特征:
# 学校 = 'oldboy'
# 姓名 = '耗哥'
# 年龄 = 18
# 性别 = 'male'
# 技能:
# 选课
#
# 对象2:
# 特征:
# 学校 = 'oldboy'
# 姓名 = '猪哥'
# 年龄 = 17
# 性别 = 'male'
# 技能:
# 选课
#
# 对象3:
# 特征:
# 学校 = 'oldboy'
# 姓名 = '帅翔'
# 年龄 = 19
# 性别 = 'female'
# 技能:
# 选课
#
# 站在老男孩选课系统的角度,先总结现实世界中的老男孩学生类
#         老男孩学生类:
#             相似的特征:
#                 学校="oldboy"
#             相似的技能
#                 选课
#
# 在程序中
# 1.先定义类
class OldboyStudent:
    school='oldboy'
    def choose_course(self):#有位置形参
        print('is choosing course')

# 类体代码会在类的定义阶段就立刻执行,会产生一个类的名称空间
#
# 类的本身就是一个容器、名称空间,是用来存放名字的,这是类的用途之一
print(OldboyStudent.__dict__)
print(OldboyStudent.__dict__['school'])
print(OldboyStudent.__dict__['choose_course'])
OldboyStudent.__dict__['choose_course'](123)#要给形参传参才能运行


print(OldboyStudent.school)#其实就是OldboyStudent.__dict__['school']

OldboyStudent.choose_course(222)#其实就是OldboyStudent.__dict__['choose_course']

OldboyStudent.country='china'#OldboyStudent.__dict__['country']='China'

print(OldboyStudent.country)#已经创建成功 china

del OldboyStudent.school
# print(OldboyStudent.school)#值已经被删除

# 2.后调用类产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象、实例
stu1=OldboyStudent()#调用类会得到一个返回值,该返回值就是类的一个具体存在的对象,实例
stu2=OldboyStudent()

猜你喜欢

转载自blog.csdn.net/qq_35540539/article/details/80807906