首页 > 编程语言 >Python周总结——面向对象

Python周总结——面向对象

时间:2022-11-06 16:57:52浏览次数:40  
标签:总结 val person Python get dog 面向对象 attack dict

Python周总结——面向对象

编程思想

'''
面对过程编程:

	过程即流程,面向过程就是按照固定的流程解决问题
	需要列举出每一步的流程,并且随着步骤的深入,问题的解决也越来越简单
	
	面向过程是一种以过程为中心的编程思想,其原理就是将问题分解成一个一个详细的步骤,然后通过函数实现每一个步骤,并依次调用。
	
面对对象编程:

	对象即容器,是数据和功能的结合体,万物皆可对象
	面向对象编程,我们只需要创造出一个一个的对象,至于对象的未来,则和我们无关
	
	面向对象则是一种以对象为中心的编程思想,通过分析问题,分解出一个一个的对象,然后通过不同对象之间的调用来组合解决问题。
'''

面向对象前戏

'''
1、为什么需要面向对象编程
	1.1 接近现实生活,容易建模。生活中的事物就是一个个的对象,很容易建立两者之间的联系。

  1.2 对象提供了一种好的组织数据的方式,通过对象,我们可以把混乱的数据整合到一个类中,形成一个整体,这样处理起来更加方便。

  1.3 对数据的封装,面向对象提供了public,private等访问控制,能够防止外部对数据的非法访问。

  1.4 代码的重用,面向的对象的继承,多态,接口实现等特性能够很容易的实现代码的重用,而同时,我们可以将类作为一个整体,随处使用,也是一个很好的重用方法
  
  1.5 可扩展性,可维护性
2、面向对象的特点
	(1)万物皆对象(2)程序是对象的集合(3)它们通过发送消息来告诉彼此要做的(4)每个对象都有自己由其他对象所构成的存储(5)每个对象都拥有其类型,特定类型的所有对象都可以接受同样的消息。
	
3、面向对象的核心思想
	实现数据与功能的绑定,即数据和功能只有一定前置条件的才能调用
'''

需要面向对象的小示例

# coding:utf-8
'''
编写代码实现人狗大战
    要求:
        人只能调用人的攻击动作,狗也一样,即实现数据与功能的绑定
'''


# 定于人的函数
def get_person(name, age, gender, p_type, attack_val, life_val):
    # 产生人的函数(功能)
    def person_attack(person_dict, dog_dict):
        print(f"人:{person_dict.get('name')}准备揍狗:{dog_dict.get('name')}")
        dog_dict['life_val'] -= person_dict.get('attack_val')
        print(f"人揍了狗一拳 狗掉血:{person_dict.get('attack_val')} 狗剩余血量:{dog_dict.get('life_val')}")
    # 表示人的数据
    person_dict = {
        'name': name,
        'age': age,
        'gender': gender,
        'p_type': p_type,
        'attack_val': attack_val,
        'life_val': life_val,
        'person_attack': person_attack
    }
    return person_dict


# 定义狗的函数
def get_dog(name, d_type, attack_val, life_val):
    # 产生狗的功能函数
    def dog_attack(dog_dict, person_dict):
        print(f"狗:{dog_dict.get('name')}准备咬人:{person_dict.get('name')}")
        person_dict['life_val'] -= dog_dict.get('attack_val')
        print(f"狗咬了人一口 人掉血:{dog_dict.get('attack_val')} 人剩余血量:{person_dict.get('life_val')}")
    # 产生狗的数据
    dog_dict = {
        'name': name,
        'd_type': d_type,
        'attack_val': attack_val,
        'life_val': life_val,
        'dog_attack': dog_attack
    }
    return dog_dict


dog = get_dog('大黄', '天狗', 999, 10000)
person = get_person('沉香', 18, 'man', '孝子', 9999, 99999)
# person.get('person_attack')(person, dog)
person['person_attack'](person, dog)

标签:总结,val,person,Python,get,dog,面向对象,attack,dict
From: https://www.cnblogs.com/HaiMan/p/16862988.html

相关文章

  • 学习python第七天
    importdatetimex=datetime.datetime.now()print(x)Python中的日期不是其自身的数据类型,但是我们可以导入名为 datetime 的模块,把日期视作日期对象进行处理。日期......
  • 第六周总结
    第六周总结面向对象与类面向对象概述面向对象可以说是一种编程思想,我们之前所学习的变成可以称之为面向过程编程,就是按照流程一步一来,但是面向对象不是。首先面向对象在......
  • 2022-2023-1 20221404 《计算机基础与程序设计》第十周学习总结
    2022-2023-120221404《计算机基础与程序设计》第十周学习总结作业信息班级链接(2022-2023-1-计算机基础与程序设计)作业要求(2022-2023-1计算机基础与程序设计......
  • 服务器项目部署总结
    参考声明:https://baijiahao.baidu.com/s?id=1702319821126368710&wfr=spider&for=pc文章目录[系列文章目录](javascript:void(0))[前言](javascript:void(0))[一、......
  • Python主要的应用领域有哪些?
    作为一个实用主义的学习者,最关心的问题一定是“我为什么要选择学Python,学会之后我可以用来做什么?”。在上篇《为什么选择Python入门》文章中,我们已经明白了为什么选择学......
  • 面向对象、继承
    动静态方法classStudent:school_name='摆烂大学'deffunc(self):print('我看谁最能摆烂')@classmethod#被@classmethod修饰的函数默认绑定给类......
  • 面向对象汇总
    本周内容概要目录本周内容概要本周内容详情面向对象前戏之人狗大战两种编程思想类与对象1.类与对象的概念2.类与对象创建2.1类的语法结构2.2类的定义与调用2.3对象独有的......
  • 面向对象周总结
    目录面向对象周总结人狗大战面向对象核心思路编程思想面向对象类与对象类与对象的创建对象独有的数据对象独有的功能动静态方法面向对象继承的概念继承的本质名字的查找顺......
  • python的函数进阶
    匿名函数基本语法lambda:定义匿名函数(没有函数名的函数)lambda参数1,参数2,参数n:返回值应用场景1、用于定义一些函数结构体非常简单、而且使用次数较少的函数2、作为......
  • Python实现寄存器表格生成寄存器rtl代码
    功能需求:通过约定好字段的寄存器表格生成寄存器代码语言要求:Python关键点:如何操作表格-通过openpyxl第三方库实现思路:读取表格,将表格内容以列表形式存储,在存储时,对寄存器......