> i am learning how a __class__ data member behaves in python as
> compared to static data member in java [...]

The error is not related to class variables. Also could you elaborate on
what you intended to find out with this snippet?

> 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)

The condition in the while loop is wrong. bool(PizzaShop.pizza_stock) is
True for all values but 0. (All numbers but 0 are considered True.) The
while loop does its commands while the condition holds True. When you do

not PizzaShop.pizza_stock

it will return False for values other than 0, therefor the loop is never
run and on exit of get_pizza it raises StopIteration to indicate that
there are no more values to be yielded.

> 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())

You might want to catch StopIteration here so that you can handle the
case that the shop runs out of the initial stack of pizzas. ;)

--
Felix Dietrich
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to