当您从some_package import *执行操作时,python将导入包选择导出的任何内容.它选择导出的内容可能是实际存储在包文件夹中的一部分.这是为什么?没有特别的原因,这就是包裹作者决定如何做事.

有关导出内容的信息在程序包内的__init__.py文件中定义(在本例中为 tkinter/ init

.py

).如果查看该文件,您会注意到它不会导入ttk本身,因此不会导出ttk,因此无法使用通配符导入导入.

再说一次,除了tkinter和ttk的作者选择做事之外,没有特别的理由.

导入tkinter的更好方法

您可能认为它是标准的,因为许多教程都是这样做的,但这通常是一种不好的做法. IMO的更好方法是给tkinter库一个明确的名称:

# python 3.x

import tkinter as tk

from tkinter import ttk

# python 2.x

import Tkinter as tk

import ttk

这将使您的代码更容易阅读,因为您必须明确说明您正在使用的 工具 包:

b1 = tk.Button(...) # uses a standard tk button

b2 = ttk.Button(...) # uses a ttk button

我认为没有任何其他理由可以做到这一点.每次调用tkinter函数时,执行全局导入会为您节省几个字节,但代价是清晰度.此外,它强化了一种可能会影响您使用其他库的不良做法.

真正的权威,IMO,是 PEP8

,这就是这个问题:

Wildcard imports (from import *) should be avoided as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. There is one defensible use case for a wildcard import, which is to republish an internal interface as part of a public API (for example, overwriting a pure Python implementation of an interface with the definitions from an optional accelerator module and exactly which definitions will be overwritten isn’t known in advance).

python ttk_python-3.x – 为什么导入*然后ttk?相关推荐

  1. python不同层级模块的导入和文件的读写

    python不同层级模块的导入和文件的读写(2-201812103) 1 python 在不同层级目录import 模块的方法 2 python中文件的读写 1 python 在不同层级目录impor ...

  2. python模块与包的导入

    python模块与包的导入 1. 模块与包的区别 模块,即module,一个包含python语句的.py文件就是一个模块!每个源代码文件都会自动成为模块!没有额外的语法用来声明模块. 包,又称模块包, ...

  3. Python编程语言学习:包导入和模块搜索路径简介、使用方法之详细攻略

    Python编程语言学习:包导入和模块搜索路径简介.使用方法之详细攻略 目录 包导入和模块搜索路径简介 1.Pyhon搜索模块路径的机制 2.自定义配置搜索路径

  4. 成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入

    成功解决:将后缀.pyx格式文件(linux环境)编译成pyd文件(windows环境下)实现python编程加载或导入 目录 解决问题 解决思路 解决方法 解决问题 .pyx格式文件,在window ...

  5. 【Python3】Python模块与包的导入

    [Python3]Python模块与包的导入 一.模块导入 1. 定义 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语 ...

  6. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块) 一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其它内 ...

  7. python读取matlab矩阵_matlab、python中矩阵的互相导入导出方式

    还有一种最流行的h5py.. 过几天更新 ------------在python中导出矩阵至matlab------------ 如果矩阵是mxn维的. 那么可以用 : np.savetxt('dev ...

  8. python标准库不需要导入即可使用其中的所有对象和方法_2021智慧树网课答案创业基础考试期末答案...

    加入塞利凡诺夫试剂并加热能迅速出现红色的物质为(). A design career might be a good choice forsomeone who likes art.A. TrueB. ...

  9. python标准库不需要导入即可使用其中的所有对象和方法_Python程序设计-中国大学mooc-题库零氪...

    <Python程序设计基础>课程导学 单元测验 1.下面属于Python应用领域的有? A.数据分析 B.云计算 C.开发操作系统 D.网络安全 E.树莓派 F.数据可视化 2.在Wind ...

  10. python标准库不需要导入即可使用其中的所有对象和方法_Python编程及应用-中国大学mooc-题库零氪...

    <Python程序设计基础>课程导学 单元测验 1.下面属于Python应用领域的有? A.数据分析 B.云计算 C.开发操作系统 D.网络安全 E.树莓派 F.数据可视化 2.在Wind ...

最新文章

  1. 上周热点回顾(6.20-6.26)
  2. 服务器win2008 R2 x64 部署ASP.net core到IIS 并解决 HTTP Error 502.5 的问题
  3. MAC版CRT使用心得
  4. 指针的理解 -- java程序员学C语言日记二
  5. C#.NET验证码智能识别学习笔记---06 解决java jre问题:JTessBoxEditor.jar打开的时报找不到或无法加载主类 com.sun.tools.javac.Main错误
  6. VC++网络安全编程范例(2)-创建自签名证书
  7. SQL Server 数据库做读写分离
  8. slots游戏html5开发,unity自定义游戏框架Custom Slots fr amework 1.4
  9. 机器学习中优化算法论文合集
  10. c语言gga字符串校验和代码,NEMA-0183(GPGGA,GPRMC,GPGSA,GPGSV,GPVTG)详解,并附解析代码(C语言版)...
  11. OBS 电脑推流直播指南
  12. Python转换图片大小格式
  13. linux分区表导出与恢复,linux下磁盘分区表的备份和恢复
  14. c语言课程设计成型代码,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
  15. 1023 GPA计算
  16. 小红书流量红利词「0基础」实操手册
  17. window10 20H2安卓模拟器VT检测不到问题解决方法
  18. 让脂肪起内讧?从内部全面瓦解脂肪
  19. c#获取公网的ip,本机ip 以及当前城市以及运营商
  20. 15-责任链模式Quarkus实现

热门文章

  1. 计算机基础内容相关的论文,有关于计算机基础论文范文
  2. 如何用计算机自动求和,如何在excel中自动求和 自动求和的解决方法及步骤
  3. android 解决ScrollView中的子布局不能够填充整个ScrollView
  4. audit linux mysql_MySQL审计工具Audit Plugin安装使用
  5. oracle audit_actions,Oracle Audit 功能的使用和说明
  6. TCP/IP协议各层的网络设备
  7. html修改progress背景色,html5 progress标签如何更改进度条颜色?progress进度条详解...
  8. Sublime Text2 好用技巧备忘
  9. mysql的user表被清空_不小心删除掉了mysql user表无法登陆进mysql解决方法
  10. [CVPR2022] A Dual Weighting Label Assignment Scheme for Object Detection