python笔记.9

模块

  • 用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了,但Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。
  • 实例:
import sys
print('命令行参数如下:') 
for i in sys.argv: 
print(i) 
print('\n\nPython 路径为:', sys.path, '\n')


结果:
$ python using_sys.py 参数1 参数2
命令行参数如下:
using_sys.py
参数1
参数2

Python 路径为: ['/root', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']

import语句

  • 使用python源文件
  • 语法:
import module1[, module2[,... moduleN]
  • 实例
 斐波那契(fibonacci)数列模块
  def fib(n): # 定义到 n 的斐波那契数列
   a, b = 0, 1 
   while b < n:
    print(b, end=' ')
     a, b = b, a+b 
     print() 
     def fib2(n): # 返回到 n 的斐波那契数列
      result = []
       a, b = 0, 1 
       while b < n: 
       result.append(b)
        a, b = b, a+b 
        return result

然后进入Python解释器,使用下面的命令导入这个模块:

>>> import fibo

from … import 语句

  • 从模块中导入一个指定的部分到当前命名空间中
  • 语法:
from modname import name1[, name2[, ... nameN]]
  • 实例:
>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

from … import * 语句

  • 把一个模块的所有内容全都导入到当前的命名空间,可以导入一个模块中的所有项目
  • 语法:
from modname import *

深入模块

  • 可以使用 import 直接把模块内(函数,变量的)名称导入到当前操作模块
  • 这种导入的方法不会把被导入的模块的名称放在当前的字符表中,所以下面例子里面,fibo 这个名称是没有定义的
  • 实例:
>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

name属性

  • 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行
  • 实例:
if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')
结果:
$ python using_name.py
程序自身在运行

$ python
>>> import using_name
我来自另一模块

dir() 函数

  • 内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回
  • 实例:
>>> import fibo, sys
>>> dir(fibo)
['__name__', 'fib', 'fib2']
>>> dir(sys)  
['__displayhook__', '__doc__', '__excepthook__'....]
  • 如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称
  • 实例:
>>> a = [1, 2, 3, 4, 5]
>>> import fibo
>>> fib = fibo.fib
>>> dir() # 得到一个当前模块中定义的属性列表
['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']

标准模块

  • Python 本身带着一些标准的模块库,有一个特别的模块 sys ,它内置在每一个 Python 解析器中,变量 sys.ps1 和 sys.ps2 定义了主提示符和副提示符所对应的字符串
  • 实例:
>>> import sys
>>> sys.ps1
'>>> '
>>> sys.ps2
'... '
>>> sys.ps1 = 'C> '
C> print('Runoob!')
Runoob!
C>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值