码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象初识

时间:2018-03-05 20:47:12      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:核心   body   post   相同   解决   agg   pre   方法   知识   

面向对象
面向过程核心:过程(即流水线思维)
优点:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可
缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身
应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等
核心:对象(上帝思维)
优缺点
优:可扩展性好,易于理解代码逻辑
缺:可控性差
使用场景:需求经常变化的软件
用户层
互联网应用
企业内部应用软件
游戏
名词

具有相同特征的一类事物
对象/实例
实例
实例化
类——>对象的过程
类的相关知识
作用:
属性引用
类名.属性
实例化
对象名= 类名(参数)
对象
查看属性:对象.属性名
调用方法:对象.方法名()
关于self:在实例化时自动将对象/实例本身传给__init__的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做
查看类属性:
1、dir(类名)
结果是一个字典
类名.__dict__
对象的相关知识
对象是关于类而实际存在的一个例子
对象/实例只有一种作用:属性引用
对象之间的交互

class Person:  # 定义一个人类
    role = ‘person‘  # 人的角色属性都是人

    def __init__(self, name, aggressivity, life_value):
        self.name = name  # 每一个角色都有自己的昵称;
        self.aggressivity = aggressivity  # 每一个角色都有自己的攻击力;
        self.life_value = life_value  # 每一个角色都有自己的生命值;

    def attack(self,dog):  
        # 人可以攻击狗,这里的狗也是一个对象。
        # 人攻击狗,那么狗的生命值就会根据人的攻击力而下降
        dog.life_value -= self.aggressivit
class Dog:  # 定义一个狗类
    role = ‘dog‘  # 狗的角色属性都是狗

    def __init__(self, name, breed, aggressivity, life_value):
        self.name = name  # 每一只狗都有自己的昵称;
        self.breed = breed  # 每一只狗都有自己的品种;
        self.aggressivity = aggressivity  # 每一只狗都有自己的攻击力;
        self.life_value = life_value  # 每一只狗都有自己的生命值;

    def bite(self,people):
        # 狗可以咬人,这里的狗也是一个对象。
        # 狗咬人,那么人的生命值就会根据狗的攻击力而下降
     dog.life_value -= self.aggressivit

面向对象初识

标签:核心   body   post   相同   解决   agg   pre   方法   知识   

原文地址:https://www.cnblogs.com/2018-01-30/p/8510939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!