最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

第三十一天 面向对象编程的基础

来源:博客园


(资料图)

一、人狗大战

# 这里的目标是生成一个人和狗之间能够相互攻击的程序,首先我们对任务进行拆分**1、自己手动利用标签创建人和狗的对象**person1 = {  # 使用字典模拟人"name": "jason","p_type": "猛男","attack_val": 800,"life_val": 2000}person2 = {  # 使用字典模拟人"name": "慢男","p_type": "闷骚","attack_val": 100,"life_val": 1200}dog1 = {  # 使用字典模拟狗"name": "小黑狗","d_type": "泰迪","attack_val": 50,"life_val": 800}dog2 = {  # 使用字典模拟狗"name": "小舔狗","d_type": "比特","attack_val": 800,"life_val": 8000}**2.这个时候你会发现一个个自己用手打出来太麻烦了,直接上函数**def human(name, p_type, attack_val, life_val):human_dic = {"name": name,"p_type": p_type,"attack_val": attack_val,"life_val": life_val}return human_dicp1 = human("dio", "猛男", 500, 5000)print(p1)def get_dog(name, d_type, attack_val, life_val):    """    专门用于产生狗字典(狗)    :param name: 狗的名字    :param d_type: 狗的类型    :param attack_val: 狗的攻击力    :param life_val: 狗的生命值    :return: 狗的字典(狗)    """    dog_obj = {        "name": name,        "d_type": d_type,        "attack_val": attack_val,        "life_val": life_val    }    return dog_objd1 = get_dog("小黄狗","中华田园犬",800, 5000)d2 = get_dog("小奶狗","哈士奇",100, 200)**3.想要让创建的对象之间能够相互进攻,封装进攻函数**def human_attack(human_obj, dog_obj):    """        专用提供给人调用 攻击狗        :param human_obj: 传人数据(字典)        :param dog_obj: 传狗数据(字典)    """    # 1、先展示状态    print("即将被攻击的狗:%s 当前血量:%s" % (dog_obj.get("name"), dog_obj.get("life_val")))    dog_obj["life_val"] -= human_obj["attack_val"]    print("人:%s 锤了 狗:%s 狗掉血:%s 剩余血量:%s" % (    human_obj.get("name"), dog_obj.get("name"), human_obj.get("attack_val"), dog_obj.get("life_val")))def dog_attack(dog_obj, person_obj):    """    专用提供给狗调用 攻击人    :param dog_obj: 传狗数据(字典)    :param person_obj: 传人数据(字典)    """    print("即将被攻击的人:%s 当前血量:%s" % (person_obj.get("name"), person_obj.get("life_val")))  # 先展示当前人的状态    person_obj["life_val"] -= dog_obj.get("attack_val")  # 狗咬人 直接用人的生命值减去狗的攻击力    print("狗:%s 咬了 人:%s 人掉血:%s 剩余血量:%s" % (        dog_obj.get("name"), person_obj.get("name"), dog_obj.get("attack_val"), person_obj.get("life_val")))**4.进一步创建人与狗的对象并相互进行攻击**p1 = human("dio", "1", 500, 5000)p2 = human("jojo", "1", 500, 5000)d1 = get_dog("buqi", "guibin", 300, 1000)human_attack(p1,d1)dog_attack(d1, p2)

二、代码优化

                 

关键词: