Arhn - архитектура программирования

Пожалуйста, объясните обоснование подхода глобального импорта tkinter

Это основной вопрос, поэтому прошу прощения, если он уже возникал. Я искал stackoverflow и в других местах, но не смог найти окончательного ответа.

Мне любопытно, почему примеры tkinter обычно используют подход глобального импорта. Даже в документации Python указано, что это более распространенный метод использования:

...чтобы использовать Tkinter, все, что вам нужно сделать, это импортировать один модуль:

import Tkinter

Или, чаще:

from Tkinter import *

http://docs.python.org/2/library/tkinter.html

Я думал, что глобальный импорт обычно осуждается? Предполагая, что это так, должна быть веская причина для использования глобального импорта в этом случае. Может кто-нибудь просветить меня?

РЕДАКТИРОВАТЬ: после публикации вопроса (и получения нескольких полезных ответов - спасибо!), я также нашел следующую полезную ветку: Импорт Tkinter без *?

17.09.2013

  • Это избавляет вас от необходимости вводить Tkinter. весь ваш код... 18.09.2013
  • Как правило, вы не хотите загрязнять глобальное пространство имен глобальным импортом, но практичность важнее чистоты. 18.09.2013
  • Я надеюсь, вы не воспринимаете ответы как причину кодировать таким образом. Может быть причина, по которой в некоторых документах говорится об этом, но я бы сказал, что ни одна из этих причин не является хорошей. 18.09.2013

Ответы:


1

Да, глобальный импорт обычно осуждается по разным причинам. Однако программа Tkinter будет использовать множество функций Tkinter, поэтому глобальный импорт рассматривается многими разработчиками как средство экономии времени. Предполагается, что конфликты имен будут редкими, поскольку вы вряд ли будете определять свои собственные классы графического интерфейса и еще что-то, для чего потребуются похожие имена. Если бы вы были, вы бы не использовали глобальный импорт.

И Tkinter (и многое, если его пример кода) восходит к двадцатому веку, поэтому он не обязательно придерживается PEP 8, который во многом является документом двадцать первого века.

Современным компромиссом было бы import Tkinter as tk, а затем использовать tk.Button и тому подобное. Это легче ввести, чем tkinter.Button, но намного понятнее, чем просто Button, особенно если вы пишете программное обеспечение для запуска фабрики кнопок.

17.09.2013
  • Вы говорите, что конфликты имен случаются редко, но я часто вижу конфликты имен на этом сайте. Например, пакеты tkinter и ttk имеют класс с именем Button, и эти два модуля часто используются вместе. 18.09.2013
  • Я говорю предполагается, что конфликты имен будут редки... и мы знаем, что происходит с программистами, которые предполагают. :-) 18.09.2013

  • 2

    Когда вы пишете приложение с графическим интерфейсом, вы очень интенсивно используете его API, в отличие от всего остального. Кнопки, текстовые записи, события и многое другое. Просто очень практично просто импортировать все.

    17.09.2013
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..