turtle.Screen 是 python 中 turtle.TurtleScreen 的子类吗?
Is turtle.Screen a subclass of turtle.TurtleScreen in python?
from turtle import Turtle, Screen, TurtleScreen
turtle = Turtle()
screen = Screen()
print(isinstance(turtle, Turtle))
print(isinstance(screen, TurtleScreen))
print(issubclass(Screen,TurtleScreen))
print(isinstance(screen, Screen))
最后 2 次打印出现一些错误,调试显示“屏幕”不是 class。但是从文档中可以看出“Screen 是 TurtleScreen 的子 class”。那么这里出了什么问题?是不是和一个叫做 Singolton object 的东西有关?
没有 class 叫作 Screen
。有一个名为 Screen
的(独立乌龟)函数 returns 单例 TurtleScreen
实例。所以这是正确的:
screen = Screen()
print(isinstance(screen, TurtleScreen))
(隐藏的现实是它是 class _Screen
的实例 class class TurtleScreen
的子实例class 共 TurtleScreenBase
)
为简单起见,我们假装我们正在获取 class Screen
的实例,我们将在以下实例上调用方法:
from turtle import Screen
screen = Screen()
screen.setup(800, 600)
但这是一个方便的小说。
from turtle import Turtle, Screen, TurtleScreen
turtle = Turtle()
screen = Screen()
print(isinstance(turtle, Turtle))
print(isinstance(screen, TurtleScreen))
print(issubclass(Screen,TurtleScreen))
print(isinstance(screen, Screen))
最后 2 次打印出现一些错误,调试显示“屏幕”不是 class。但是从文档中可以看出“Screen 是 TurtleScreen 的子 class”。那么这里出了什么问题?是不是和一个叫做 Singolton object 的东西有关?
没有 class 叫作 Screen
。有一个名为 Screen
的(独立乌龟)函数 returns 单例 TurtleScreen
实例。所以这是正确的:
screen = Screen()
print(isinstance(screen, TurtleScreen))
(隐藏的现实是它是 class _Screen
的实例 class class TurtleScreen
的子实例class 共 TurtleScreenBase
)
为简单起见,我们假装我们正在获取 class Screen
的实例,我们将在以下实例上调用方法:
from turtle import Screen
screen = Screen()
screen.setup(800, 600)
但这是一个方便的小说。