[Tutor] class data member and objects of class in python

zubair alam zubair.alam.jmi at gmail.com
Thu Sep 12 11:10:08 CEST 2013


class PizzaShop():
    pizza_stock = 10
    def get_pizza(self):
        while PizzaShop.pizza_stock:
            PizzaShop.pizza_stock -= 1
            yield "take yours pizza order, total pizzas left
{}".format(PizzaShop.pizza_stock)

mypizza_shop = PizzaShop()
pizza_order = mypizza_shop.get_pizza()
# print "{}".format(repr(pizza_order.next()))

for order in pizza_order:
print "{}".format(repr(order))

domino_pizza_store = mypizza_shop.get_pizza()
print "{}".format(repr(domino_pizza_store.next()))

mypizza_shop.pizza_stock = 10

domino_pizza_store = mypizza_shop.get_pizza()
print "{}".format(repr(domino_pizza_store.next()))


can't we again use the same object mypizza_shop once its generator is
exhausted


On Thu, Sep 12, 2013 at 6:53 AM, Marc Tompkins <marc.tompkins at gmail.com>wrote:

> On Wed, Sep 11, 2013 at 5:40 AM, zubair alam <zubair.alam.jmi at gmail.com>wrote:
>
>> i am learning how a __class__ data member behaves in python as compared
>> to static data member in java, but following code is throwing error
>>
>>
>> class PizzaShop():
>>     pizza_stock = 10
>>     def get_pizza(self):
>>         while not PizzaShop.pizza_stock:
>>             PizzaShop.pizza_stock -= 1
>>             yield "take yours pizza order, total pizzas left
>> {}".format(PizzaShop.pizza_stock)
>>
>> mypizza_shop = PizzaShop()
>> pizza_order = mypizza_shop.get_pizza() # iterator is obtained
>> print "a pizza pls!! {}:".format(pizza_order.next())
>> print "a pizza pls!! {}:".format(pizza_order.next())
>>
>> output:
>> Traceback (most recent call last):
>>   File "/home/scott/pythonfiles/core_python/pizza.py", line 10, in
>> <module>
>>     print "a pizza pls!! {}:".format(pizza_order.next())
>> StopIteration
>>
>>
>> don't know where i am doing mistake....any help will be appreciated... i
>> have other questions on based on this class
>>
>>
>
> Change "while not PizzaShop.pizza_stock:" to "while
> PizzaShop.pizza_stock:"; I get the following output:
>
>> a pizza pls!! take yours pizza order, total pizzas left 9:
>> a pizza pls!! take yours pizza order, total pizzas left 8:
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130912/51dbe3d1/attachment.html>


More information about the Tutor mailing list