python 面向对象

本文介绍了面向对象编程的概念,对比了C语言的结构体与Python等语言中的对象区别,强调对象将数据和方法封装,简化了调用方的复杂逻辑。通过一个Person类的示例,展示了Python中面向对象编程的实现,阐述了类作为对象抽象,以及面向对象编程在软件开发中的重要性和实用性。
摘要由CSDN通过智能技术生成

  计算机编程中最常被提到的就是类和对象,掌握类和对象,有助于使用Python  编程与语言快速实现复杂的项目。

  早期计算机编程语言都是面向过程的,长须即由数据和算法构成,数据可以构成复杂的数据结构,算法也是由上到下 的复杂逻辑控制,这是一种将数据和操作算法分离开的编程思想,这种程序涉及思想的重点都是在代码中各个方法的执行上,C语言中提供了结构体来解决数据复杂度问题,可将一部分数据或属性包装起来,定义出一个复杂的数据结构,如Person 结构体(包括姓名,年龄,身高,体重等一系列数据)。

#include <stdio.h>
int main () {
    //定义结构体,Person\
    struct Person{
        char *name;
        int age;
        float height;
        float weight;
    };
    //通过结构体来定义变量
    struct Person person;
    //操作结构体的成员
    person.name = "小王";
    person.age = 24;
    person.height = 171.2;
    person.weight = 75.0;
    
    return 0;
};

   上面的代码是C语言设计中的结构体,但是这种结构体只能支持复杂的数据结构,对于每个数据的处理都要单独提供方法,而且这些方法与整体的结构体并没有关系,后来在PHP,C++,Java,Python等语言中,人们对C语言中的结构体进行了升级,引入了一种新的编程思想--面向对象编程,即程序操作都是在操作对象,对象不仅可以定义复杂的数据结构,也可以定义复杂的算法方法,对象将数据和方法封装起来,开发者只需要负责对象内部的数据和算法,同时对外暴漏接口和供调用方使用,而调用方也不需要关心实际对象内部的复杂逻辑,只需要调用接口,下面给出了和PHP 相同的Person 结构的示例,与C语言结构体不同的是加入了算法方法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class hankai:
    def __init__(self, name, age, height, weight) :
        self.name = name
        self.age = age
        self.height = height
        self.weight = weight

    def print_person(self):
        print ("name", self)
        print ("age", self.age)
        print ("height", self.height)
        print ("weight", self.weight)

person = hankai('韩锴', 32, 160, 60)
person.print_person()

    执行结果:

name <__main__.hankai object at 0x00000270D0FC8400>
age 32
height 160
weight 60

    开发人员发现,这种编程思想更能解决实际问题,程序是对象的集合,并且能够描述具有高度复杂性的各类模型和算法,在现实生活中,人的思考是抽象的,我们会将遇到的事务抽象化,相同或类似的对象可以进行抽象,这时就出现了对象的类型--类,先定义类,然后由类去创建对象,最后由对象去管理整个程序,就像人类思考一样,先抽象,后实例化,最后去执行,面向对象编程的应用逐渐变得广泛起来。

  值得注意的是,类的产生是抽象的结果,人们在认识复杂世界时,会将实物或者可以说是对象的一些近似特征抽出来,并且不考虑其中每个个体的细节,面向对象编程就是一种不断抽象数据和不断抽象方法的过程。

提示:

     面向对象编程在软件执行效率上并没有绝对的优势,主要时一种方便开发者组织管理代码,快速树立了熟悉各个行业领域逻辑的思想方法,它是一种更贴近现实生活的编程设计方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值