Turtle module

Chris Angelico rosuav at gmail.com
Wed May 26 17:02:16 EDT 2021


On Thu, May 27, 2021 at 6:51 AM Michael F. Stemper <mstemper at gmail.com> wrote:
>
> On 26/05/2021 11.17, Chris Angelico wrote:
> > On Thu, May 27, 2021 at 1:59 AM Michael F. Stemper <mstemper at gmail.com> wrote:
>
>
> >>    What I would like to do is capture the
> >> angle-representation mode on entry and restore it on return.
> >> However, looking through the methods of turtle.Turtle(), I
> >> can't find any means of capturing this information.
> >>
> >> Similarly, I'd like to return with the pen in the same state
> >> (up or down) as when my functions were called. Again, I can't
> >> find any way to query the pen state.
> >>
> >> How can my function get this information? Or do I need to be
> >> sloppy and let the callers beware?
> >
> > For the most part, this is what you want:
> >
> > https://docs.python.org/3/library/turtle.html#turtle.pen
>
> Just found the same thing myself and came back to report it. But,
> immediately after your link is:
> <https://docs.python.org/3/library/turtle.html#turtle.isdown>
> which seems even better for up/down.

Yeah, if that's the only thing you need.

> > It doesn't seem to include the fullcircle state (which is what
> > .degrees() and .radians() set), and I'm not sure why. Worst case, it
> > is technically available as the ._fullcircle member, but I would
> > advise against using that if you can help it!
>
> Well, I'll take your advice and not use it. Seems really sloppy to
> change an attribute of an object as a side-effect, but I guess that
> I'll have to be sloppy.
>

If this matters to you, here's what I'd recommend: Propose that the
fullcircle state be added to what pen() returns and can update, and
also possibly propose a context manager, so you can do something like
this:

def f():
    with turt.local():
        turt.pendown()
        ...
        ....
    # once we get here, the turtle's pen state will have been restored

I'm not the person to ask about these, as I don't use the turtle
module, but those would seem fairly plausible enhancements.

ChrisA


More information about the Python-list mailing list