[Tutor] Maximum recursion depth problem.
Wesley Brooks
wesbrooks at gmail.com
Tue Aug 3 12:02:21 CEST 2010
Dear Python Users,
I'm having real difficulty understanding why the following is not
working and hoped I've either missed something obvious of I'm doing
something wrong!
class A:
def break_down(self, value, base, broken_list=[]):
power = len(broken_list)
digit = int((value % (base ** (power + 1))) / (base ** power))
value -= digit * (base**power)
broken_list.append(digit)
if value != 0:
return self.break_down(value, base, broken_list=broken_list)
else:
return broken_list[:]
if __name__ == '__main__':
a = A()
d_list_1 = a.break_down(34567, 256)
print d_list_1
a2 = A()
d_list_2 = a2.break_down(34567, 256)
print d_list_2
When the above runs it fails with the error "RuntimeError: maximum
recursion depth exceeded while calling a Python object".
The following also does not work:
if __name__ == '__main__':
a = A()
digit_list_1 = a.break_down(34567, 256)
print digit_list_1
del digit_list_1, usc
a2 = A()
digit_list_2 = a2.break_down(34567, 256)
print digit_list_2
but the following two do work:
if __name__ == '__main__':
a = A()
digit_list_1 = a.break_down(34567, 256)
print digit_list_1
#a2 = A()
#digit_list_2 = a2.break_down(34567, 256)
#print digit_list_2
if __name__ == '__main__':
#a = A()
#digit_list_1 = a.break_down(34567, 256)
#print digit_list_1
a2 = A()
digit_list_2 = a2.break_down(34567, 256)
print digit_list_2
I'm a little stumped as I don't think I'm using any global or class
variables? Any help would be much appreciated.
Yours Faithfully,
Wesley Brooks
More information about the Tutor
mailing list