• 22、面向对象


    面向对象

    1、面向对象

      面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物:对象就是单独的个体,程序的设计都是在这个个体之内。

      优点:解决了程序的扩展性。对某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。

      缺点:可控性差

      类:抽象的,我能知道什么属性,有什么技能,但不知道属性的具体的值

      对象,有具体的值,技能和属性都是根据类的规范

    2、类和对象

      类:具有相同特征的一类事物(人、狗、老虎)

      对象:具体的某一个事物(隔壁阿花、楼下旺财)

      实例化:类到对象具体实例的过程

      1)类名 ()  创造出一个对象,并且创造了一个self变量

             调用__init__方法,类名括号里的参数会在这里被接收

        执行__init__方法

        返回self

      2)对象能做的事

        查看属性

        调用方法

        __dict__对于对象的增删改查都可以通过字典的语法进行

      3)类名能做的事

        实例化

        调用方法,要自己传递self参数

        调用类中的属性,也就是调用静态属性

        __dict__调用类中的属性,只能查看,不能修改

     3、具体实例:

    class Person:                    #类名
        country= 'China'            #创造了一个只要是这个是这个类就有的属性,
                                    #类属性,是静态属性
        def __init__(self,name,blood,aggr,kind):         #初始化方法,self是一个必须传的参数
            self.name=name                                #self是一个可以储存很多属性的大字典
            self.blood=blood
            self.aggr=aggr
            self.kind=kind
        def attack(self,dog):               #方法,一般情况下必须传self参数,且必须写在第一
            dog.blood -= self.aggr        #个,后面可以传很多参数,是自由的
            print(dog.blood)
    
    jin=Dog('金老板',100,20,'male') #类名实例化对象,jin就是实例化
    alex=Person('Alex',100,30,'')
    print(alex.country)          #类名,可以看类的属性,不需要实例化就可以看属性
    print(alex.__dict__)         #查看所有属性
    alex.attack(jin)            #相当于Person.attack(alex,jin),调用方法 类名.方法名(对象名)
    
    class Dog:
        def __init__(self,name,blood,aggr,kind):
            self.name=name
            self.blood=blood
            self.aggr=aggr
            self.kind=kind
        def bite(self,person):
            person.blood -= self.aggr
            print(person.blood)

     未完待续……

  • 相关阅读:
    项目依赖库列表文件requirements.txt生成和使用
    pymysql执行sql语句无效问题
    Prometheus
    关于在安装wampserver出现“由于找不到msvcr110.dll”的问题的解决办法
    安装centos8和Window10出现的一些问题和解决方法
    LeetCode833题:字符串中的查找与替换
    Pycharm中github的使用(只有链接供自己学习使用)
    机器学习《西瓜书》的学习笔记——机器学习使用的领域
    机器学习中数理统计与参数估计的相关基础概念
    怎样在Anaconda中的某一个环境中安装Python的相关包(pypyodbc)
  • 原文地址:https://www.cnblogs.com/wangyuxing/p/8288461.html
Copyright © 2020-2023  润新知