python 面向对象的介绍

本文介绍了面向对象编程的基础概念,包括类、对象、继承、封装和多态。通过伪代码展示了类的实例化过程,强调了类属性和实例属性的区别。同时,通过Dog和Person类的交互示例,解释了对象间的方法调用,如咬人和砍伤操作,展示了类的动态行为。

什么是面向过程

先知道两个知识点
Pv page visit 页面访问量
Uv user visit 独立IP访问量
我们用伪代码来表示
在这里插入图片描述

面向对象的核心


一个类即是对一类拥有相同属性的对象的抽象、蓝图、原型。在类中定义了这些对象的都具备的属性、共同的方法
对象
相当于一个类的实例化
继承
一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承
封装
在类中对数据的赋值、内部调用外部用户是透明的,这使类变成了一个胶囊或者容器,里面包含着类的数据和方法
多态

类的基本语法

在这里插入图片描述
下面有一张图描述了实例化的过程(self代表实例本身)
在这里插入图片描述
类属性,也叫类变量都是公共属性,所有实例共享
实例属性,也叫实例变量,也叫成员变量,每个实例独享

class Dog:
    type = "你猜"

    def __init__(self, name):
        self.name = name


print(Dog.type)  # 直接通过类本身去调用

d = Dog("藏獒")  # 实例化Dog的对象
Dog.type = "dasdsad"
print(d.type)  # 通过实例对象去调用
print(Dog.type)
print(d.name)  # 打印实例化的属性
print(Dog.name)

在这里插入图片描述
可以看到类本身是无法调用实例化属性的,只能是调用共有的属性!!!

d.type = "***"
print(d.type)  # 等于是重新创建了一个新的共有属性
print(Dog.type)

在这里插入图片描述
类之间的交互

class Dog:
    role = 'dog'
    life_val = 100

    def __init__(self, name, breed, attack_val):
        self.name = name
        self.breed = breed
        self.attack_val = attack_val

    def bite(self, person):
        person.life_val -= self.attack_val
        print("%s咬了%s一口,扣除%d血量,剩余血量%d" % (self.name, person.name, self.attack_val, person.life_val))


class Person:
    role = 'person'
    life_val = 100

    def __init__(self, name, breed, attack_val):
        self.name = name
        self.breed = breed
        self.attack_val = attack_val

    def chop(self, dog):
        dog.life_val -= self.attack_val
        print("%s砍伤%s一口,扣除%d血量,剩余血量%d" % (self.name, dog.name, self.attack_val, dog.life_val))


# 实例化dog和person
d = Dog("旺财", "牧羊犬", 10)
d1 = Dog("阿三", "藏獒", 90)
p = Person("阿布","猎人",80)
d1.bite(p)
p.chop(d)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发酵的西瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值