面向对象

Posted zhangyajie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象相关的知识,希望对你有一定的参考价值。

class Person:
    def __init__(self,name,sex,hp,ad):  # 初始化方法
        self.user = name
        self.sex = sex
        self.hp = hp
        self.ad = ad
    def attack(self,dog):
        print(%s攻击了%s%(self.user,dog.user))
        dog.hp -= self.ad
        print(%s掉了%s点血,当前血量为%s%(dog.user,self.ad,dog.hp))

class Dog:
    def __init__(self,name,kind,hp,ad):  # 初始化方法
        self.user = name
        self.kind = kind
        self.hp = hp
        self.ad = ad
    def bite(self,person):
        print(%s咬了%s % (self.user, person.user))
        person.hp -= self.ad
        if person.hp>0:
            print(%s掉了%s点血,当前血量为%s % (person.user, self.ad, person.hp))
        else:
            person.hp = 0
            print(%s掉了%s点血,当前血量已为0 % (person.user, self.ad))
alex = Person(alex, None, 10, 1)  # 实例化
egon = Person(egon, None, 10, 1)  # 实例化
taibai = Dog(哮天犬,teddy, 100, 50)  # 实例化
# print(alex.user)
# print(egon.user)
# print(taibai.user)
alex.attack(taibai)   # <==>Person.attack(alex,taibai)
print(taibai.hp)

# 首先静态变量之所以出现 : 所有的对象都共享的值
# 调整静态变量的值 : 直接用类名去调整 是最准确的
# 对象对一个静态变量重新赋值的过程
# 实际上是在对象所在的内存空间中添加了一个同名属性而已
# 方法并没有真正存储在对象的空间中
# 之所以能找到,是因为每一个对象在创建之初都有一个执行类的指针

# 类名
# 查看修改静态属性
# 实例化
# 对象名
# 查看对象的属性
# 调用方法
# 对象使用名字的特点 : 自己有的时候用自己的 自己没有的时候用类中的

 

以上是关于面向对象的主要内容,如果未能解决你的问题,请参考以下文章

面向面试编程代码片段之GC

PHP面向对象之选择工厂和更新工厂

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

Scala的面向对象与函数编程

Python面向对象学习之八,装饰器