猫狗队列

1,add方法将Dog实例或Cat实例加入猫狗队列

2,pollAll将猫狗队列中的实例按插入顺序弹出

3,pollDog将猫狗队列中的Dog实例按插入顺序弹出

4,pollCat将猫狗队列中的Cat实例按插入顺序弹出

5,isEmpty判断猫狗队列中是否还有实例

6,isDogEmpty判断猫狗队列中是否还有Dog实例

7,isCatEmpty判断猫狗队列中是否还有Cat实例

#!/usr/bin/env python3
# --*-- coding: utf-8 --*--
from collections import deque

class Pet:
    count = 0

    def __init__(self):
        pass

    def __str__(self):
        Pet.count += 1
        return ‘Pet {}‘.format(Pet.count)

class Dog(Pet):
    count = 0

    def __init__(self):
        pass

    def __str__(self):
        Dog.count += 1
        return ‘Dog {}‘.format(Dog.count)

class Cat(Pet):
    count = 0

    def __init__(self):
        pass

    def __str__(self):
        Cat.count += 1
        return ‘Cat {}‘.format(Cat.count)

class CountedPet:
    count = 0

    def __init__(self, pet):
        CountedPet.count += 1
        self.pet = pet
        self.index = CountedPet.count

class CatDogQueue:
    catque = deque()
    dogque = deque()

    def add(self, pet):
        countedPet = CountedPet(pet)
        self.catque.append(countedPet)             if isinstance(pet, Cat) else self.dogque.append(countedPet)

    def pollAll(self):
        if self.catque or self.dogque:
            if not self.dogque:
                return self.catque.popleft().pet
            elif not self.catque:
                return self.dogque.popleft().pet
            else:
                return self.dogque.popleft().pet                     if self.dogque[0].index < self.catque[0].index                     else self.catque.popleft().pet

    def pollCat(self):
        if self.catque:
            return self.catque.popleft().pet

    def pollDog(self):
        if self.dogque:
            return self.dogque.popleft().pet

    def isEmpty(self):
        return False if self.catque or self.dogque else True

    def isDogEmpty(self):
        return False if self.dogque else True

    def isCatEmpty(self):
        return False if self.catque else True

if __name__ == ‘__main__‘:
    ‘‘‘test here‘‘‘
时间: 2024-10-21 16:36:44

猫狗队列的相关文章

6.猫狗队列问题

问题:宠物.狗.猫的类如下 class Pet { private String type; public Pet(String type) { this.type = type; } public String getType() { return this.type; } public String toString(){ return this.getType(); } } class Dog extends Pet { public Dog(String type) { super(ty

[Daily]猫狗队列——”子类管理器“

[题目] 有猫狗类如下: class Pet { private: string m_type; public: Pet(string _type){ m_type=_type; } string GetPetType(){ return m_type; } }; class Dog : public Pet { public: Dog() : Pet("dog"){} }; class Cat : public Pet { public: Cat() : Pet("cat&

猫狗收养所

两种方法实现,用两个vector实现,一个为领养的动物(输出),一个为收养的动物(输入):用两个queue实现(都为输入),一个为收养的猫,一个收养的狗,vetor(输出). /***************************************************** * \file CatDogAsylum.cpp * \date 2016/05/09 15:19 * \问题描述: 题目描述 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养

当当变“猴子”后能敌“猫狗”?

后知后觉虽然能看清竞争形势,可以谋而后动,弥补自身不足,增强自身竞争力,不过这也意味着将失去先机,与那些先行者的差距越来越大.即使通过让自己处于一个完美态势,却难敌用户"先入为主"的观念.已经成立15年的当当就面对着这样一个难题,在阿里.京东接连发力,独霸网购市场前两名的态势下,当当却还在和苏宁易购.1号店.亚马逊等在第二阵营中惨烈搏杀. 即使当下通过各种手段提升自己的"逼格",但终究慢了对手好几步,想让自己处于第一集团军中,再多的挣扎似乎也是徒然.而在转型的路上,

卷积神经网络入门(1) 识别猫狗

一下来自知乎 按照我的理解,CNN的核心其实就是卷积核的作用,只要明白了这个问题,其余的就都是数学坑了(当然,相比较而言之后的数学坑更难). 如果学过数字图像处理,对于卷积核的作用应该不陌生,比如你做一个最简单的方向滤波器,那就是一个二维卷积核,这个核其实就是一个模板,利用这个模板再通过卷积计算的定义就可以计算出一幅新的图像,新的图像会把这个卷积核所体现的特征突出显示出来.比如这个卷积核可以侦测水平纹理,那卷积出来的图就是原图水平纹理的图像. 现在假设要做一个图像的分类问题,比如辨别一个图像里是

自己训练卷积模型实现猫狗

原数据集:包含 25000张猫狗图像,两个类别各有12500 新数据集:猫.狗 (照片大小不一样) 训练集:各1000个样本 验证集:各500个样本 测试集:各500个样本 # 将图像复制到训练.验证和测试的目录 import os,shutil orginal_dataset_dir = 'kaggle_original_data/train' base_dir = 'cats_and_dogs_small' os.mkdir(base_dir)#保存新数据集的目录 train_dir = o

猫狗图像识别

这里,我们介绍的是一个猫狗图像识别的一个任务.数据可以从kaggle网站上下载.其中包含了25000张毛和狗的图像(每个类别各12500张).在小样本中进行尝试 我们下面先尝试在一个小数据上进行训练,首先创建三个子集:每个类别各1000个样本的训练集.每个类别各500个样本的验证集和每个类别各500个样本的测试集. import os, shutil original_dataset_dir = '/media/erphm/DATA/kaggle猫狗识别/train'    # 原始文解压目录b

类入门例-猫狗互咬

以下例子演示动物类的写法,其中用到了构造函数. 在Main函数中,使用动物类创造出一只猫,一条狗. 猫狗互相攻击,直到一方死去. 代码如下: class Animal { public string name;//动物名称 public int hp, attack, speed;//动物血量.攻击力.攻击速度 public Animal(string n,int life,int force,int s) { name = n; hp = life; attack = force; speed

人们捐款保护猫狗是为了自己

无利不起早 做一件事情绝对有一个利益 人们捐款去救助猫狗,只是为了自己.感到满足. 去除掉好坏,善恶的定义,只从行为上来看,在没有善恶定义之前,也会做这些事情,利益无论是为了自己还是为了更大的群体.只是被动的被环境选择来做这些事情 如果生命是环境选择出来的,环境是否也会被生命选择. 其实没有所谓选择不选择,天地不仁. 原文地址:https://www.cnblogs.com/yangzihong/p/11562210.html