[Tutor] Better structure?
Jacob S.
keridee at jayco.net
Tue Feb 1 05:34:09 CET 2005
>> def start():
> .... lots of lines...
>> global xaxis
>> global yaxis
>
> Its traditional to put global statements at the top of the function.
> Also you only need one line to list all of the global variables
>
>> global radiusaxis
>> global radiusaxis2
What, like
global radiusaxis, radiusaxis2
> Similarly here., and again you can put all four in one place.
>
>> radiusaxis2.visible = 0
> And since there is no input parameter and no return statement
> and you only call start() once...
Not true. If y == 'clear', then start is called to "redraw" the window.
Very important part.
>> def graphit(type,f,range2,step):
>> li = curve(color=color.blue)
>> if type in ['y','x']:
>> x = -15
>> radiusaxis.visible = 0
>> radiusaxis2.visible = 0
>> while -15 <= x <= 15:
>> if eval(range2):
>> try:
>> a = f(x)
>> if -15 <= a <= 15:
>> if type == 'y':
>> li.append(pos=(x,a,0))
>> elif type == 'x':
>> li.append(pos=(a,x,0))
>> else:
>> li = curve(color=color.blue)
>> except:
>> pass
>
> This is iffy. If *anthing* happens you ignore it.
> Now suppose due to a bug you go into an infinite
> loop and you try to stop using CTRL-C - it won't work!
>
> If you must use a catch-all except then do something
> with it - print a message at least!
I think I'll do that, but of course I'll have to add ValueError -- because
of math domain errors on
my function. That's what the try except block is for. Otherwise I wouldn't
need it.
> I got a sore head after that... I'll leave the rest for
> others to remark upon. :-)
>
> Alan G.
I'd send some Advil or something, but it doesn't work too well through
email. ;-)
Thanks for the help,
Jacob Schmidt
More information about the Tutor
mailing list