Странный способ импорта Python Turtle работает, но я не знаю почему
Я надеюсь, вы поймете мой вопрос.
Я заметил, что получаю одинаковые результаты при импорте модуля черепахи двумя следующими способами.
from turtle import Turtle
t=Turtle()
t.screen.bgcolor("black")
а также
import turtle
turtle.bgcolor("black")
Я запутался по этому поводу, "от черепахи ввозной черепахи".
Согласно тому, что я знаю, это означает "импортировать Turtle.py из turtle (папка / пакет)". Я могу ошибаться, вы можете помочь мне лучше понять.
Но я не могу найти модуль Turtle.py. Это только turtle.py я видел.
Что странного в том, что это работает.
Кто-нибудь может сказать мне, почему?
Я использую Python версии 3.6
1 ответ
Turtle.py в Python необычен тем, что в нем представлен как интерфейс на основе функций, так и объектно-ориентированный интерфейс. В зависимости от того, как вы его импортируете, вы можете работать с одним или другим, или обоими.
Здесь мы используем объектно-ориентированный интерфейс для вызова метода экранаbgcolor()
:
from turtle import Turtle
t = Turtle()
t.screen.bgcolor("black")
Я обычно пишу это как:
from turtle import Turtle, Screen
screen = Screen()
screen.bgcolor("black")
t = Turtle()
поскольку прямой доступ к объекту Screen упрощает работу. Используя этот стиль импорта, вы не можете получить доступ к интерфейсу на основе функций.
Когда мы делаем этот более простой импорт, мы получаем доступ как к функционально-ориентированному интерфейсу, так и к объектно-ориентированному интерфейсу. Здесь мы используем функцию bgcolor()
установить цвет фона:
import turtle
turtle.bgcolor("black")
Использование функционального или объектно-ориентированного интерфейса к turtle.py - это хорошо, но вы можете серьезно запутаться, смешивая их.