栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

面向对象编程简介

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象编程简介

两种编程思想的区分

编程有两种编程思维,一种是面向过程编程,一种是面向对象编程。


面向过程编程

面向过程编程就是根据流程执行代码,按照设定好的顺序一步一步到达想要的结果。

之前学习的所有代码流程都是面向过程编程。

面向对象编程

面向对象编程就是根据代码创造出一个对象,对象里面包含数据和功能,代码部分只负责创造对象,对象后续的结果与创建对象的代码无关。

游戏创建的角色由代码决定,角色后续的操作与玩家相关。

两种编程思想没有优劣之分,后续还会出现混合使用的情况。


类与对象

面向对象编程中,对象与类是重要的组成部分。

对象

对象是一个包含数据和功能的集合体

类

类是一些具有类似功能的对象的集合体


类用于设置和存储对象公共的变量数据和方法。(即函数名,在面向对象中一般称为方法名)

对象从类里继承对应的变量数据和方法名。

例如人里面有很多数据,年龄,性别,性格,这些数据大不相同,但这些数据的共同特点是都属于这个人本身,所以这些数据是对象,人是类,这些数据是归属于人这个类的对象。


类与对象在代码中的体现 1.class创建类
class people:
    school = 'XX大学'        # 对象公共的数据
    def func_name():         # 对象公共的方法名
        pass

class是面向对象编程中用于创建类的关键字,类名的命名跟变量名一致 并且为了方便和变量区分推荐首字母大写。

类的代码在类定义阶段就会执行


如何提取类的数据方法

print(Student.__dict__)  # 使用该方法查看名称空间 可以看成是一个字典

print(Student.__dict__['school'])  # 使用字典的取值方式获取名字

print(Student.__dict__.get('choice_course'))  # 使用字典的取值方式获取名字

除了这些方法以外,在面向对象中还有更简便的方法。

print(Student.school)

print(Student.func_name)
2.生成对象
对象名 = 类名()

class School:

student_A = school()
student_B = school()

使用'对象名等于类名加括号'就能快捷生成对象,生成的对象拥有类里面所有的数据和方法。

print(student_A)  # <__main__.School object at 0x000001D923B04A60>
print(student_B)  # <__main__.School object at 0x0000025E8A48F130>

print(student_A.school)  # XX大学

读取对象存储的数据的方法同样也是使用点,直接打印对象会显示对象所在的名称空间。

3.对象独有的数据

对象除了能继承类拥有的数据外,还能拥有独有的数据。

学校是类,学生是对象,每个学生除了属于学校这个类以外,学生本身还拥有自己的各种数据,例如年龄、性别、成绩,这些都是每个学生独有的数据。

方式一:内置方法__dict__

obj1 = Student()
obj1.__dict__['name'] = 'jason'  # 等价于 obj1.name = 'jason'
obj1.__dict__['age'] = 18  # 等价于 obj1.age = 18
obj1.__dict__['gender'] = 'male'  # ...
print(obj1.name)
print(obj1.age)
print(obj1.gender)
print(obj1.school)

方式二:封装成函数init

def init(obj,name,age,gender):
    obj.__dict__['name'] = name
    obj.__dict__['age'] = age
    obj.__dict__['gender'] = gender
stu1 = Student()
stu2 = Student()
init(stu1,'jason',18,'male')
init(stu2, 'kevin',28,'female')
print(stu1.__dict__)
print(stu2.__dict__)

方式二扩展:将封装函数功能整合到类里,作为一个方法

class Student:
    """
    1.先产生一个空对象
    2.自动调用类里面的__init__方法 将产生的空对象当成第一个参数传入
    3.将产生的对象返回出去
    """
    def __init__(self, name, age, gender):
        self.name = name  # obj.__dict__['name'] = name
        self.age = age  # obj.__dict__['age'] = age
        self.gender = gender  # obj.__dict__['gender'] = gender
        # 左右两边的名字虽然一样 但是意思不一样 左边的其实是字典的键 右边的其实是实参

    # 学生对象公共的数据
    school = '清华大学'

    # 学生对象公共的方法
    def choice_course(self):
        print('正在选课')


stu1 = Student('jason', 18, 'male')
print(stu1)
stu2 = Student('kevin', 28, 'female')
print(stu2)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号