iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python __all__变量怎么使用
  • 752
分享到

Python __all__变量怎么使用

2023-07-05 20:07:54 752人浏览 独家记忆

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

摘要

今天小编给大家分享一下python __all__变量怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。&nb

今天小编给大家分享一下python __all__变量怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

        事实上,当我们向文件导入某个模块时,导入的是该模块中那些名称不以下划线(单下划线“_”或者双下划线“__”)开头的变量、函数和类。因此,如果我们不想模块文件中的某个成员被引入到其它文件中使用,可以在其名称前添加下划线。
        以前面章节中创建的 demo.py 模块文件和 test.py 文件为例(它们位于同一目录),各自包含的内容如下所示:

#demo.pydef say():    print("人生苦短,我学Python!") def CLanguage():    print("编程网://www.yisu.com") def disPython():    print("Python教程://www.yisu.com/python") #test.pyfrom demo import *say()CLanguage()disPython()

执行 test.py 文件,输出结果为:

人生苦短,我学Python!
编程网://www.yisu.com
Python教程://www.yisu.com/python

        在此基础上,如果 demo.py 模块中的 disPython() 函数不想让其它文件引入,则只需将其名称改为 _disPython() 或者 __disPython()。修改之后,再次执行 test.py,其输出结果为:

人生苦短,我学Python!
编程网://www.yisu.com
Traceback (most recent call last):
  File "C:/Users/mengma/Desktop/2.py", line 4, in <module>
    disPython()
NameError: name 'disPython' is not defined

显然,test.py 文件中无法使用未引入的 disPython() 函数。

Python模块__all__变量

        除此之外,还可以借助模块提供的 __all__ 变量,该变量的值是一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称。通过在模块文件中设置 __all__ 变量,当其它文件以“from 模块名 import *”的形式导入该模块时,该文件中只能使用 __all__ 列表中指定的成员

也就是说,只有以“from 模块名 import *”形式导入的模块,当该模块设有 __all__ 变量时,只能导入该变量指定的成员,未指定的成员是无法导入的。

举个例子,修改 demo.py 模块文件中的代码:

def say():    print("人生苦短,我学Python!") def CLanguage():    print("编程网://www.yisu.com") def disPython():    print("Python教程://www.yisu.com/python") __all__ = ["say","CLanguage"]

可见,__all__ 变量只包含 say() 和 CLanguage() 的函数名,不包含 disPython() 函数的名称。此时直接执行  test.py 文件,其执行结果为:

人生苦短,我学Python!
编程网://www.yisu.com
Traceback (most recent call last):
  File "C:/Users/mengma/Desktop/2.py", line 4, in <module>
    disPython()
NameError: name 'disPython' is not defined

        显然,对于 test.py 文件来说,demo.py 模块中的 disPython() 函数是未引入,这样调用是非法的。

        再次声明,__all__ 变量仅限于在其它文件中以“from 模块名 import *”的方式引入。也就是说,如果使用以下 2 种方式引入模块,则 __all__ 变量的设置是无效的。

以“import 模块名”的形式导入模块。通过该方式导入模块后,总可以通过模块名前缀(如果为模块指定了别名,则可以使用模快的别名作为前缀)来调用模块内的所有成员(除了以下划线开头命名的成员)。

仍以 demo.py 模块文件和 test.py 文件为例,修改它们的代码如下所示:

#demo.pydef say():    print("人生苦短,我学Python!") def CLanguage():    print("编程网://www.yisu.com") def disPython():    print("Python教程://www.yisu.com/python") __all__ = ["say"]  #test.pyimport demodemo.say()demo.CLanguage()demo.disPython()

运行 test.py 文件,其输出结果为:

人生苦短,我学Python!
C语言中文网://www.yisu.com
Python教程://www.yisu.com/python

        可以看到,虽然 demo.py 模块文件中设置有  __all__ 变量,但是当以“import demo”的方式引入后,__all__ 变量将不起作用。

  以“from 模块名 import 成员”的形式直接导入指定成员。使用此方式导入的模块,__all__ 变量即便设置,也形同虚设。

仍以 demo.py 和 test.py 为例,修改 test.py 文件中的代码,如下所示:

from demo import sayfrom demo import CLanguagefrom demo import disPython say()CLanguage()disPython()

运行 test.py,输出结果为:

人生苦短,我学Python!
编程网://www.yisu.com
Python教程://www.yisu.com/python

以上就是“Python __all__变量怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python __all__变量怎么使用

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

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

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

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

下载Word文档
猜你喜欢
  • Python __all__变量怎么使用
    今天小编给大家分享一下Python __all__变量怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。&nb...
    99+
    2023-07-05
  • Python __all__变量用法示例详解
    目录Python模块__all__变量        事实上,当我们向文件导入某个模块时,导入的是该模...
    99+
    2023-05-14
    Python __all__变量 Python __all__
  • Python怎么使用变量_Python使用变量方法
    1、首先学过c语言的朋友都知道,c语言如果要使用变量,需要先定义一个类型的变量,然后才可以使用。 2、然后在Python语言中,不需要预先定义,可以直接在用到的地方赋值即可。 3、P...
    99+
    2024-04-02
  • python变量怎么在作用域使用
    这篇文章主要介绍python变量怎么在作用域使用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌入式应用开发;5、...
    99+
    2023-06-14
  • 【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | `__init__.py` 定义 `__all__` 变量 )
    文章目录 一、自定义 Python 包1、PyCharm 中创建 Python 包2、自定义 Module 模块代码3、`__init__.py` 代码 二、导入并调用自定义 Python...
    99+
    2023-10-23
    python 开发语言 自定义包 导入自定义包 __init__.py 原力计划
  • Python中怎么使用非局部变量
    这篇文章将为大家详细讲解有关Python中怎么使用非局部变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。全局变量在 Python 中,在函数之外或在全局范围内声明的变量被称为全局变量。 这...
    99+
    2023-06-17
  • Python中变量的作用域怎么使用
    这篇文章主要介绍“Python中变量的作用域怎么使用”,在日常操作中,相信很多人在Python中变量的作用域怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中变量的作用域怎么使用”的疑惑有所...
    99+
    2023-07-06
  • mysql变量怎么使用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-30
  • 怎么在python中使用del删除变量
    怎么在python中使用del删除变量?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、...
    99+
    2023-06-14
  • 使用python怎么在变量中添加self
    这篇文章给大家介绍使用python怎么在变量中添加self,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、说明前缀带self的变量,就是在整个类的代码块里面类似是作为全局变量,如果变量前面加了self,那么在任何实例...
    99+
    2023-06-15
  • Python 使用全局变量
    今天在写以下Python代码时出现了问题。该段代码根据一些URL下载视频: #coding=utf-8 def save_case_infos(case_urls): for case_url in case_urls:...
    99+
    2023-01-31
    全局变量 Python
  • python变量命名怎么用
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-22
  • Java中变量怎么使用
    这篇文章主要介绍了Java中变量怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为了在Java中存储一个数据,必须将它容纳在一个变量之中。而数据类型决定了一个变量可以赋给...
    99+
    2023-06-03
  • PHP中怎么使用可变变量名
    本篇文章为大家展示了PHP中怎么使用可变变量名,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。有时候PHP的可变变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用。通常变量通过下面这样...
    99+
    2023-06-17
  • Python全局变量关键字global怎么使用
    这篇“Python全局变量关键字global怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python全局变量关键字...
    99+
    2023-07-02
  • python全局变量的使用
    问题提出,怎么记录汉诺塔问题中盘子移动的次数? def hanu(n,a,b,c):          if n==1 :                print("move",a,"->",c)                ...
    99+
    2023-01-31
    全局变量 python
  • python怎么实现跨文件使用全局变量
    这篇文章主要介绍“python怎么实现跨文件使用全局变量”,在日常操作中,相信很多人在python怎么实现跨文件使用全局变量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python怎么实现跨文件使用全局变量...
    99+
    2023-07-05
  • 怎么在shell中使用变量
    怎么在shell中使用变量?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。变量删除和替换案例:从头开始匹配,将符合最短的数据删除 (#)variable_1=&q...
    99+
    2023-06-09
  • 怎么在Python中使用逆变换方法生成随机变量
    本篇内容主要讲解“怎么在Python中使用逆变换方法生成随机变量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Python中使用逆变换方法生成随机变量”吧!目标在仿真理论中,生成随机变量是...
    99+
    2023-06-15
  • python怎么引入变量
    在python中引入变量的方法有:1.使用%字符引入;2.使用+连字符引入;3.使用format()函数引入;在python中引入变量的方法使用%字符引入变量name = 'zhangsan'age = 25price = 4500.225...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作