Differences between revisions 1 and 6 (spanning 5 versions)
Revision 1 as of 2007-06-26 05:50:11
Size: 1319
Editor: HuangYi
Comment:
Revision 6 as of 2007-08-04 14:46:19
Size: 2459
Editor: brightman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
:status: 草稿|校对|正式;AuthorName;完成度15%; :status: 草稿|校对|正式;HuangYi;完成度1%;
Line 7: Line 7:
  :depth: 3
Line 9: Line 8:
 . :depth: 3
===== module与package =====
module ===== 为什么有module? 首先,你用Python实现的一些功能(python代码)可以保存为py文件,否则离开了Python解释器,就丢失了这些功能; 其次对于较大程序可以用文本编辑器开发,再Python将其作为输入来运行,而且某些些程序你可以拆分为多个较小py文件,便于维护。 最后,你想复用这些功能时只需要import它们,而不需要重复拷贝代码。 这些就module的功能,可以认为一个py文件就是一个module。 一个module是一个包含了Python代码的文件,文件的名称就是module名称加上py后缀。举例来说:fibo.py
Line 10: Line 12:
模块与包
========
# Fibonacci numbers module
Line 13: Line 14:
附件 |contribute_docs| def fib(n): # write Fibonacci series up to n
Line 15: Line 16:
.. |contribute_docs| image:: 1.0/RoughDocs/contribute_docs.jpg  . a, b = 0, 1
 while b < n:
  . print b, a, b = b, a+b
def fib2(n): # return Fibonacci series up to n
Line 17: Line 21:
脚注 [#]_  . result = [] a, b = 0, 1
 while b < n:
  . result.append(b) a, b = b, a+b
 return result
在Python解释器中 使用import fibo导入fibo module 和 使用fibo.fib(1000)来调用函数,也可以用fib = fibo.fib 将module函数赋值到本地函数。
Line 19: Line 27:
二级标题.1
--------------------
>>> import fibo
Line 22: Line 29:
三级标题.1.1
````````````````````
>>> fibo.fib(1000)
Line 25: Line 31:
二级标题.2
--------------------
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Line 28: Line 33:
三级标题.2.1
````````````````````
>>> fibo.fib2(100)
Line 31: Line 35:
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Line 32: Line 37:
小结
===============================
>>> fibo.__name__
Line 35: Line 39:
'fibo'
Line 36: Line 41:
练习
--------------------
>>> fib = fibo.fib
Line 39: Line 43:
>>> fib(500)
Line 40: Line 45:
引用::  . 1 1 2 3 5 8 13 21 34 55 89 144 233 377
搜寻module的路径 =====
Line 42: Line 48:
    This is the main heading
    ========================
当你import spam,python解释器现在当前目录下搜寻spam.py,如果没有找到,会依次在$PYTHONPATH指示的所有路径中搜寻。$PYTHONPATH的设定方法与$PATH是一样的,即多个目录路径的字符串。事实上,module的搜寻路径是依照sys.path变量(多个路径组成的list变量)。当Python解释器启动时,会将当前目录、$PYTHONPATH、以及按照安装时设定的一些目录加入到sys.path中。如果你有把握,可以修改这些参数来该表搜寻module的路径。
Line 45: Line 50:
    :Status: Draft Packages =====
Line 47: Line 52:
MoinMoin 链接:

- `page with a ReStructuredText primer <HelpOnParsers/ReStructuredText/RstPrimer>`_
- `use of ReST in MoinMoin <HelpOnParsers/ReStructuredText>`_.

外部链接:

- `Docutils-Users mailing list`_
- `Docutils project web site`_

.. [#] If that relative link doesn't work, try the master document:
   http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html.
.. _Docutils-Users mailing list:
   http://lists.sourceforge.net/lists/listinfo/docutils-users
.. _Docutils project web site: http://docutils.sourceforge.net/




.. macro:: [[PageComment2(nosmiley=1, notify=1)]]
Package是一种采用"."组织module 命令空间的方式。比如module名称A.B表示是表示A package中的module B。这种命名空间的组织方式能够避免不同module命令的冲突。 .. macro:: [[PageComment2(nosmiley=1, notify=1)]]
Rendering of reStructured text is not possible, please install Docutils.
:status: 草稿|校对|正式;HuangYi;完成度1%;

.. contents::

 . :depth: 3
===== module与package =====
module ===== 为什么有module? 首先,你用Python实现的一些功能(python代码)可以保存为py文件,否则离开了Python解释器,就丢失了这些功能; 其次对于较大程序可以用文本编辑器开发,再Python将其作为输入来运行,而且某些些程序你可以拆分为多个较小py文件,便于维护。 最后,你想复用这些功能时只需要import它们,而不需要重复拷贝代码。 这些就module的功能,可以认为一个py文件就是一个module。 一个module是一个包含了Python代码的文件,文件的名称就是module名称加上py后缀。举例来说:fibo.py

# Fibonacci numbers module

def fib(n): # write Fibonacci series up to n

 . a, b = 0, 1
 while b < n:
  . print b, a, b = b, a+b
def fib2(n): # return Fibonacci series up to n

 . result = [] a, b = 0, 1
 while b < n:
  . result.append(b) a, b = b, a+b
 return result
在Python解释器中 使用import fibo导入fibo module 和 使用fibo.fib(1000)来调用函数,也可以用fib = fibo.fib 将module函数赋值到本地函数。

>>> import fibo

>>> fibo.fib(1000)

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987

>>> fibo.fib2(100)

[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

>>> fibo.__name__

'fibo'

>>> fib = fibo.fib

>>> fib(500)

 . 1 1 2 3 5 8 13 21 34 55 89 144 233 377
搜寻module的路径 =====

当你import spam,python解释器现在当前目录下搜寻spam.py,如果没有找到,会依次在$PYTHONPATH指示的所有路径中搜寻。$PYTHONPATH的设定方法与$PATH是一样的,即多个目录路径的字符串。事实上,module的搜寻路径是依照sys.path变量(多个路径组成的list变量)。当Python解释器启动时,会将当前目录、$PYTHONPATH、以及按照安装时设定的一些目录加入到sys.path中。如果你有把握,可以修改这些参数来该表搜寻module的路径。

Packages =====

Package是一种采用"."组织module 命令空间的方式。比如module名称A.B表示是表示A package中的module B。这种命名空间的组织方式能够避免不同module命令的冲突。 .. macro:: [[PageComment2(nosmiley=1, notify=1)]]

.. macro:: -- HuangYi [[[DateTime(2007-06-26T05:50:11Z)]]]

ObpLovelyPython/LpyQLearn-6-model (last edited 2009-12-25 07:14:33 by localhost)