• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

python菜鸟教程学习11:模块

python 搞java代码 3年前 (2022-05-21) 45次浏览 已收录 0个评论

  如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

<span>import</span><span> <a href="https://www.gaodaima.com/tag/sys" title="查看更多关于sys的文章" target="_blank">sys</a>
 
</span><span>print</span>(<span>"</span><span>命令行参数如下:</span><span>"</span><span>)
</span><span>for</span> i <span>in</span><span> sys.argv:
   </span><span>print</span><span>(i)
 
</span><span>print</span>(<span>"</span><span>

Python 路径为:</span><span>"</span>, sys.path, <span>"</span><span>
</span><span>"</span>)

www#gaodaima.com来源gaodai#ma#com搞*代#码网搞代码

import语句

  想使用 Python 源文件,只需在另一个源文件里执行 import 语句,一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量。

  sys.path 输出是一个列表,其中第一项是空串””,代表当前目录(若是从一个脚本中打印出来的话,可以更清楚地看出是哪个目录),亦即我们执行python解释器的目录(对于脚本的话就是运行的脚本所在的目录)。

  如果你打算经常使用一个函数,你可以把它赋给一个本地的名称:

>>> fib =<span> fibo.fib
</span>>>> fib(500<span>)
</span>1 1 2 3 5 8 13 21 34 55 89 144 233 377

  Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中

>>> <span>from</span> fibo <span>import</span><span> fib, fib2
</span>>>> fib(500<span>)
</span>1 1 2 3 5 8 13 21 34 55 89 144 233 377

from xx import*和import XX的区别

  funcname 被直接导入到本地名字空间去了,所以它可以直接使用,而不需要加上模块名的限定* 表示,该模块的所有公共对象(public objects)都被导入到当前的名称空间,也就是任何只要不是以”_”开始的东西都会被导入。 

深入模块

  模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。所以,模块的作者可以放心大胆的在模块内部使用这些全局变量,而不用担心把其他用户的全局变量搞混。从另一个方面,当你确实知道你在做什么的话,你也可以通过 modname.itemname 这样的表示法来访问模块内的函数。

__name__属性

  一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

<span>if</span> <span>__name__</span> == <span>"</span><span>__main__</span><span>"</span><span>:
   </span><span>print</span>(<span>"</span><span>程序自身在运行</span><span>"</span><span>)
</span><span>else</span><span>:
   </span><span>print</span>(<span>"</span><span>我来自另一模块</span><span>"</span>)

  每个模块都有一个__name__属性,当其值是”__main__”时,表明该模块自身在运行,否则是被引入。注意__name__ 与 __main__ 底下是双下划线。

dir( )函数

  内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回,

>>> <span>import</span><span> fibo, sys
</span>>>><span> dir(fibo)
[</span><span>"</span><span>__name__</span><span>"</span>, <span>"</span><span>fib</span><span>"</span>, <span>"</span><span>fib2</span><span>"</span><span>]
</span>>>> dir(sys)  

  如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称。

  包是一种管理 Python 模块命名空间的形式,采用”点模块名称”。注意当使用 from package import item 这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。import 语法会首先把 item 当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,抛出一个 :exc:ImportError 异常。反之,如果使用形如 import item.subitem.subsubitem 这种导入形式,除了最后一项,都必须是包,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。

 


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python菜鸟教程学习11:模块

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址