zoukankan      html  css  js  c++  java
  • python之面向对象的交互

    对象之间的交互

    我们新建一个猫类,通过给猫一些具体的属性我们就可以拿到一个实实在在的猫。现在我们要再创建一个狗类,狗就不能打猫了,只能咬猫,所以我们给狗想一个方法。
    有了狗类,我们还要实例化一只实实在在的狗出来。然后猫和狗就可以打架了。现在我们就来让它们打一架吧!

    class cat:  # 定义一只猫
        role = 'cat'  # 属性还是猫
    
        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,cat):
            # 狗可以咬猫,这里的狗也是一个对象。
            # 狗咬猫,那么猫的生命值就会根据狗的攻击力而下降
         dog.life_value -= self.aggressivit

    实例化一只实实在在的二哈

    erha = Dog('二愣子','哈士奇',10,1000)  #创造了一只实实在在的二哈:erha

    交互 egon打erha一下

    print(erha.life_value)         #看看erha的生命值
    egg.attack(erha)               #egg打了erha一下
    print(erha.life_value)         #erha掉了10点血

    类的属性

    创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性

    而类有两种属性:静态属性和动态属性

    • 静态属性就是直接在类中定义的变量
    • 动态属性就是定义在类中的方法

    其中类的数据属性是共享给所有对象的

    >>>id(egg.role)
    4341594072
    >>>id(cat.role)
    4341594072

    而类的动态属性是绑定到所有对象的

    创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性

    从前不会回头,往后不会将就
  • 相关阅读:
    AFNetwork 作用和用法详解
    ios 常见错误记录
    UIView的setNeedsLayout, layoutIfNeeded 和 layoutSubviews 方法之间的关系解释
    AutoLayout
    矩阵的法式
    极小多项式
    对角化
    线性映射
    线性方程组的解
    特征值和特征向量
  • 原文地址:https://www.cnblogs.com/xuedine/p/11694477.html
Copyright © 2011-2022 走看看