Я в целом согласен с ответом @ LightnessRacesinOrbit, но не согласен с:
Кроме того, в соответствии с последним проходом, выделенным жирным шрифтом, вы не сможете
извлечь из класса TurtleScreen. Так что вы просто не можете делать то, что
ты пытаешься сделать.
Экземпляр синглтона не создается до тех пор, пока он не понадобится, поэтому возможно создать подкласс TurtleScreen
. Это, вероятно, лучше всего сделать при использовании внедренной черепахи под tkinter:
import tkinter
from turtle import TurtleScreen, RawTurtle
class YertleScreen(TurtleScreen):
def __init__(self, cv):
super().__init__(cv)
def window_geometry(self):
''' Add a new method, or modify an existing one. '''
width, height = self._window_size()
return (-width//2, -height//2, width//2, height//2)
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.pack(side=tkinter.LEFT)
screen = YertleScreen(canvas)
turtle = RawTurtle(screen)
print(screen.window_geometry())
turtle.dot(50)
screen.mainloop()
Хотя я полагаю, что это также будет работать для автономной черепахи, хотя, скорее всего, это изменится от одного выпуска к другому.