iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中如何使用语句导入模块或包
  • 598
分享到

Python中如何使用语句导入模块或包

2023-06-02 00:06:08 598人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下python中如何使用语句导入模块或包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  从一个模块导入全部  from import * mea

小编给大家分享一下python中如何使用语句导入模块或包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

  从一个模块导入全部

  from import * means意味着“我希望能访问中我有权限访问的全部名称”。例如以下代码something.py:

  # something.py

  public_variable = 42

  _private_variable = 141

  def public_function():

  print("I'm a public function! yay!")

  def _private_function():

  print("ain't nobody accessing me from another module...usually")

  class PublicClass(object):

  pass

  class _WeirdClass(object):

  pass

  在Python解释器中,我们可以执行from something import *,然后看到如下的内容:

  >>> from something import *

  >>> public_variable

  42

  >>> _private_variable

  ...

  NameError: name '_private_variable' is not defined

  >>> public_function()

  "I'm a public function! yay!"

  >>> _private_function()

  ...

  NameError: name '_private_function' is not defined

  >>> c = PublicClass()

  >>> c

  >>> c = _WeirdClass()

  ...

  NameError: name '_WeirdClass' is not defined

  from something import *从something中导入了除了以_开头名称外的其他所有名称,按照规范,_开始的名称是私有的所以未被导入。

  嗯,不是特别糟!还有什么?

  上面没提到__all__是什么。all__是一个字符串列表,指定了当from import *被使用时,模块(或者如后文会提到的包)中的哪些符号会被导出。如果我们不定义__all(我们在上面的something.py就没定义),import *默认的导入方式是导入除了下划线(_)开头的所有名称。再说一次,编程惯例上下划线表示一个符号是私有的,不导入是合理的。让我们来看看在something.py中定义我们自己的__all__会发生什么。

  # something.py

  __all__ = ['_private_variable', 'PublicClass']

  # The rest is the same as before

  public_variable = 42

  _private_variable = 141

  def public_function():

  print("I'm a public function! yay!")

  def _private_function():

  print("Ain't nobody accessing me from another module...usually")

  class PublicClass(object):

  pass

  class _WeirdClass(object):

  pass郑州做人流手术 Http://rl.zyfuke.com/

  现在,我们期望from something import *只会导入_private_variable和PublicClass:

  >>> from something import *

  >>> public_variable

  42

  >>> _private_variable

  ...

  NameError: name '_private_variable' is not defined

  >>> public_function()

  "I'm a public function! yay!"

  >>> _private_function()

  ...

  NameError: name '_private_function' is not defined

  >>> c = PublicClass()

  >>> c

  >>> c = _WeirdClass()

  ...

  NameError: name '_WeirdClass' is not defined

  包是怎样的呢?

  当从一个包中导入全部时,__all__的做法和模块基本一样,不过它处理的是包中的模块(而不是把模块中的名都导入)。所以当我们使用from import *.时__all__说明了所有需要被导入当前命名空间的模块。

  不同之处在于,如果你在一个包的__init__.py里面没有声明__all__,from import *语句不会导入任何东西(这个说法也不全对,正确的说法在此)

  但是,这有什么不好?

  写到这里,给大家推荐一个资源很全的python学习聚集地,点击进入,这里有资深程序员分享以前学习

  心得,学习笔记,还有一线企业的工作经验,且给大家精心整理一份python零基础到项目实战的资料,

  每天给大家讲解python最新的技术,前景,学习需要留言的小细节

  from import * 是不明确的。它没告诉我们我们正在导入什么或者我们把什么带入当前命名空间了。更好的做法是显式地导入我们需要的全部名称。这种方式下,读者(非常可能是未来的你自己)就不会困惑于你代码中使用的一个变量/方法/类/其他东西是哪儿来的,这也告诉了我们下一点:

  可读性很重要

  即使你需要导入很多东西,一个一个显式地导入也更清楚。使用PEP 328:

  from Tkinter import (Tk, Frame, Button, Entry, canvas, Text,

  LEFT, DISABLED, NORMAL, RIDGE, END)

  你现在就能明确知道你的命名空间里有什么,使用ctrl+f能很快地告诉你它们是哪儿来的。

  同时,你还总是要承担模块/包作者更改list内容(加/减东西)的风险。也就是下面两者之一:

  作者从__all__里删除了一个字符串。如果你的代码使用了那个名字,你的代码就会报出NameError的错误,并且很难发现为什么。

  作者在__all__里加入了很多东西。你也许不需要这些增加的内容,所以你只是让这些你不关心的东西占满了你的命名空间。他们甚至在你不注意的时候会替代其他同名内容。

以上是“Python中如何使用语句导入模块或包”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: Python中如何使用语句导入模块或包

本文链接: https://www.lsjlt.com/news/228188.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中如何使用语句导入模块或包
    小编给大家分享一下Python中如何使用语句导入模块或包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  从一个模块导入全部  from import * mea...
    99+
    2023-06-02
  • 怎么在python中使用import语句引入模块
    今天就跟大家聊聊有关怎么在python中使用import语句引入模块,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# ...
    99+
    2023-06-14
  • python中的模块如何导入
    在Python中,可以使用`import`关键字来导入一个模块。有几种导入模块的方式:1. 导入整个模块:`import modul...
    99+
    2023-09-08
    python
  • python中如何导入math模块
    python中导入math模块的方法:1、在win操作系统中找到python程序目录;2、打开idle工具;3、在idle中新建一个shell脚本;4、输入“import math”指令导入math模块即可具体操作方法:在win系统的开始菜...
    99+
    2022-10-20
  • python中如何导入os模块
    python中导入os模块的方法:1、在win操作系统中找到python程序目录;2、打开idle工具;3、在idle中新建一个shell脚本;4、输入“import os”指令导入os模块即可具体操作方法:在win系统的开始菜单中找到py...
    99+
    2022-10-22
  • 如何在python中使用import语句调用模块
    如何在python中使用import语句调用模块?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。python有哪些常用库python常用的库:1.requesut...
    99+
    2023-06-14
  • python 包(模块 函数 类 定义 导入)使用详解
    目录python 包的模块 函数 类 定义 导入使用详细说明python 包的模块 函数 类 定义 导入使用详细说明 下面是一个使用 Python 包的详细案例,它涉及到模块、函数...
    99+
    2023-03-24
    python 包使用 python 包
  • 怎么在python中使用import导入模块
    这期内容当中小编将会给大家带来有关怎么在python中使用import导入模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scr...
    99+
    2023-06-14
  • Python如何使用scapy模块发包收包
    这篇文章给大家分享的是有关Python如何使用scapy模块发包收包的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对...
    99+
    2023-06-14
  • 如何使用SQL语句在MySQL中进行数据导入和导出?
    如何使用SQL语句在MySQL中进行数据导入和导出?MySQL是一种广泛使用的关系型数据库管理系统,它提供了一种简洁且强大的 SQL 语言来操作和管理数据。在实际应用中,我们经常需要将数据导入到MySQL数据库中或者将数据库中的数据导出到外...
    99+
    2023-12-17
    MySQL SQL 数据导入/导出
  • 如何在Python中使用zipfile压缩包模块
    这期内容当中小编将会给大家带来有关如何在Python中使用zipfile压缩包模块,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。简介ZIP 文件格式是一个常用的归档与压缩标准,zipfile 模块提供了创...
    99+
    2023-06-15
  • Python中的zipfile压缩包模块如何使用
    这篇文章主要介绍“Python中的zipfile压缩包模块如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的zipfile压缩包模块如何使用”文章能帮助大家解决问题。简介ZIP ...
    99+
    2023-07-06
  • MySQL 5.5如何使用LOAD DATA INFILE语句导入数据
    这篇文章主要介绍了MySQL 5.5如何使用LOAD DATA INFILE语句导入数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2022-10-18
  • Python的import 机制中如何实现远程导入模块
    本篇文章为大家展示了Python的import 机制中如何实现远程导入模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。所谓的模块导入,是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用...
    99+
    2023-06-02
  • python中for语句如何使用
    在Python中,for语句用于循环迭代一个可迭代对象(如列表、元组、字符串等)中的元素。for循环的基本语法如下:```pytho...
    99+
    2023-09-23
    python
  • Python中如何使用global语句
    这期内容当中小编将会给大家带来有关Python中如何使用global语句,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。使用global语句如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python...
    99+
    2023-06-17
  • 如何使用Go语言打包和加载HTTP模块?
    Go语言是一种简单、高效的编程语言,它被广泛应用于各种领域,特别是在Web开发中。HTTP模块是开发Web应用程序中必不可少的一部分,Go语言提供了许多方便的工具来打包和加载HTTP模块。在本文中,我们将介绍如何使用Go语言打包和加载HTT...
    99+
    2023-10-18
    http 打包 load
  • Node.js中如何使用ES6导入语法
    Node.js中如何使用ES6导入语法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。模块是导出一个或多个值的 JavaScript 文件。...
    99+
    2022-10-19
  • return语句如何在python中使用
    return语句如何在python中使用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统...
    99+
    2023-06-14
  • 如何在python中使用finally语句
    这篇文章给大家介绍如何在python中使用finally语句,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作