Странный способ импорта 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 - это хорошо, но вы можете серьезно запутаться, смешивая их.

Другие вопросы по тегам