RajNewbie wrote:
On Jan 12, 6:51 pm, Tim Chase <python.l...@tim.thechases.com> wrote:
   [a perfectly fine reply which is how I'd solve it]
>> RajNewbie wrote:
... The solution that I had in mind is:
   while True:
     ...
     if <condition>: break
     if inifinte_loop(): raise infiinte_loop_exception
  Wherein infinite_loop is a generator, which returns true if i > 200
  def infinite_loop():
     i = 0
     while i < 200:
         i++
         yield False
     yield True
Could somebody let me know whether this is a good option?
...
But, I still feel it would be much more aesthetically pleasing if I
can call a single procedure like
if infinite_loop() -> to do the same.
Is it somehow possible? - say by using static variables, iterators --
anything?

1) Please cut down quoted text to as little as needed to
   understand the reply.
Yes, it is possible.  After:

    def Fuse(count, exception):
        for i in range(count):
            yield None
        raise exception

You can do your loop as:
    check_infinite = Fuse(200, ValueError('Infinite Loop')).next
    while True:
        ...
        check_infinite()
but I agree with Tim that a for ... else loop for the limit is clearer.


--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to