Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix typo and translation errors #6

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions README.md

This file was deleted.

Binary file added build/doctrees/appetite.doctree
Binary file not shown.
Binary file added build/doctrees/classes.doctree
Binary file not shown.
Binary file added build/doctrees/controlflow.doctree
Binary file not shown.
Binary file added build/doctrees/datastructures.doctree
Binary file not shown.
Binary file added build/doctrees/environment.pickle
Binary file not shown.
Binary file added build/doctrees/errors.doctree
Binary file not shown.
Binary file added build/doctrees/floatingpoint.doctree
Binary file not shown.
Binary file added build/doctrees/index.doctree
Binary file not shown.
Binary file added build/doctrees/inputoutput.doctree
Binary file not shown.
Binary file added build/doctrees/interactive.doctree
Binary file not shown.
Binary file added build/doctrees/interpreter.doctree
Binary file not shown.
Binary file added build/doctrees/introduction.doctree
Binary file not shown.
Binary file added build/doctrees/modules.doctree
Binary file not shown.
Binary file added build/doctrees/stdlib.doctree
Binary file not shown.
Binary file added build/doctrees/stdlib2.doctree
Binary file not shown.
Binary file added build/doctrees/whatnow.doctree
Binary file not shown.
2 changes: 1 addition & 1 deletion html/.buildinfo → build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 20452a38335dc2e85d5ce28954b3a0fb
config: 41ec3c5669d8a1e90791dfe501e9008a
tags: 645f666f9bcd5a90fca523b33c5a78b7
14 changes: 7 additions & 7 deletions html/_sources/appetite.txt → build/html/_sources/appetite.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,27 @@

那么 Python 正是你所需要的语言。

虽然你能够通过编写 Unix shell 脚本或 Windows 批处理文件来处理其中的某些任务,但 Shell 脚本更适合移动文件或修改文本数据,并不适合编写 GUI 应用程序或游戏; 虽然你能够使用 C/C++/JAVA 编写程序,但即使编写一个简单的 first-draft 程序也有可能耗费大量的开发时间。 相比之下,Python 更易于使用,无论在 Windows、Mac OS X 或 Unix 操作系统上它都会帮助你更快地完成任务
虽然你能够通过编写 Unix shell 脚本或 Windows 批处理文件来处理其中的某些任务,但 Shell 脚本更适合移动文件或修改文本数据,并不适合编写 GUI 应用程序或游戏; 虽然你能够使用 C/C++/JAVA 编写程序,但即使编写一个简单的 first-draft 程序也有可能耗费大量的开发时间。 相比之下,Python 更易于使用,无论在 Windows、Mac OS X或Unix 操作系统上它都会帮助你更快的完成任务

虽然 Python 易于使用,但它却是一门完整的编程语言;与 Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。 另一方面,Python 提供了比 C 更多的错误检查,并且作为一门 *高级语言* ,它内置支持高级的数据结构类型,例如:灵活的数组和字典。 因其具有更多的通用数据类型,同 Awk 甚至 Perl 相比较,Python 适用于更多领域,至少大多数事情在 Python 中与其他语言同样简单。
虽然 Python 易于使用,但它却是一门完整的编程语言;与 Shell 脚本或批处理文件相比,它为编写大型程序提供了更多的结构和支持。 另一方面,Python 提供了比 C 更多的错误检查,并且作为一门 *高级语言* ,它内置支持高级的数据结构类型,例如:灵活的数组和字典。 因其更多的通用数据类型,Python 比 Awk 甚至 Perl 都适用于更的多问题领域,至少大多数事情在 Python 中与其他语言同样简单。

Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。 Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习 Python 编程的示例。 这些模块提供了诸如文件 I/O、系统调用、Socket 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。
Python 允许你将程序分割为不同的模块,以便在其他的 Python 程序中重用。 Python 内置提供了大量的标准模块,你可以将其用作程序的基础,或者作为学习 Python 编程的示例。 这些模块提供了诸如文件 I/O、系统调用、sockets 支持,甚至类似 Tk 的用户图形界面(GUI)工具包接口。

Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。 Python 解释器可以交互地使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。 你甚至还可以把它当做一个桌面计算器。
Python 是一门解释型语言,因为无需编译和链接,你可以在程序开发中节省宝贵的时间。 Python 解释器可以交互的使用,这使得试验语言的特性、编写临时程序或在自底向上的程序开发中测试方法非常容易。 你甚至还可以把它当做一个桌面计算器。

Python 让程序编写的紧凑和可读。 用 Python 编写的程序通常比同样的 C、C++ 或 Java 程序更短小,这是因为以下几个原因:
Python 让程序编写的紧凑和可读。 用 Python 编写的程序通常比同样的 C、C++或Java 程序更短小,这是因为以下几个原因:

* 高级数据结构使你可以在一条语句中表达复杂的操作;

* 语句组使用缩进代替开始和结束大括号来组织;

* 变量或参数无需声明。

Python 是 *可扩展* 的:如果你会 C 语言编程便可以轻易的为解释器添加内置函数或模块,或者为了对性能瓶颈作优化,或者将 Python 程序与只有二进制形式的库(比如某个专业的商业图形库)连接起来。 一旦你真正掌握了它,你可以将 Python 解释器集成进某个 C 应用程序,并把它当作那个程序的扩展或命令行语言
Python 是 *可扩展* 的:如果你会 C 语言编程便可以轻易的为解释器添加内置函数或模块,或者为了对性能瓶颈作优化,或者将 Python 程序与只有二进制形式的库(比如某个专业的商业图形库)连接起来。 一旦你真正掌握了它,你可以将 Python 解释器集成进某个 C 应用程序,并把它当做那个程序的扩展或命令行语言

顺便说一句,这个语言的名字来自于 BBC 的 “Monty Python’s Flying Cirecus” 节目,和爬行类动物没有任何关系。 在文档中引用 Monty Python 的典故不仅可行,而且值得鼓励!

现在你已经为 Python 兴奋不已了吧,迫不及待地想要领略更多的细节! 学习一门语言最好的方法就是使用它,本指南推荐你边读边使用 Python 解释器练习。
现在你已经为 Python 兴奋不已了吧,大概想要领略一些更多的细节! 学习一门语言最好的方法就是使用它,本指南推荐你边读边使用 Python 解释器练习。

下一节中,我们将解释 Python 解释器的用法。 这是很简单的一件事情,但它有助于试验后面的例子。

Expand Down
10 changes: 5 additions & 5 deletions html/_sources/classes.txt → build/html/_sources/classes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,23 @@ Python 的类机制通过最小的新语法和语义在语言中实现了类。
术语相关
==============================

对象具有特性,并且多个名称(在多个作用域中)可以绑定在同一个对象上。 这在其它语言中被称为别名。 在对 Python 的第一印象中这通常会被忽略,并且当处理不可变基础类型(数字,字符串,元组)时可以被放心的忽略。 但是,在调用列表、字典这类可变对象,或者大多数程序外部类型(文件,窗体等)描述实体时,别名对 Python 代码的语义便具有(有意而为!)影响。 这通常有助于程序的优化,因为在某些方面别名表现的就像是指针。 例如,你可以轻易的传递一个对象,因为通过继承只是传递一个指针。 并且如果一个方法修改了一个作为参数传递的对象,调用者可以接收这一变化——这消除了两种不同的参数传递机制的需要,像 Pascal 语言。
对象具有特性,并且多个名称(在多个作用于中)可以绑定在同一个对象上。 这在其它语言中被称为别名。 在对 Python 的第一印象中这通常会被忽略,并且当处理不可变基础类型(数字,字符串,元组)时可以被放心的忽略。 但是,在调用列表、字典这类可变对象,或者大多数程序外部类型(文件,窗体等)描述实体时,别名对 Python 代码的语义便具有(有意而为!)影响。 这通常有助于程序的优化,因为在某些方面别名表现的就像是指针。 例如,你可以轻易的传递一个对象,因为通过继承只是传递一个指针。 并且如果一个方法修改了一个作为参数传递的对象,调用者可以接收这一变化——这消除了两种不同的参数传递机制的需要,像 Pascal 语言。


.. _tut-scopes:

Python 作用域和命名空间
============================

在介绍类之前,我首先介绍一些有关 Python 作用域的规则。类的定义非常巧妙地运用了命名空间,要完全理解接下来的知识,需要先理解作用域和命名空间的工作原理。另外,这一切的知识对于任何高级 Python 程序员都非常有用。
在介绍类之前,我首先介绍一些有关 Python 作用域的规则。类的定义非常巧妙的运用了命名空间,要完全理解接下来的知识,需要先理解作用域和命名空间的工作原理。另外,这一切的知识对于任何高级 Python 程序员都非常有用。

让我们从一些定义说起。

*命名空间* 是从命名到对象的映射。当前命名空间主要是通过 Python 字典实现的,不过通常不关心具体的实现方式(除非出于性能考虑),以后也有可能会改变其实现方式。以下有一些命名空间的例子:内置命名(像 :func:`abs` 这样的函数,以及内置异常名)集,模块中的全局命名,函数调用中的局部命名。某种意义上讲对象的属性集也是一个命名空间。关于命名空间需要了解的一件很重要的事就是不同命名空间中的命名没有任何联系,例如两个不同的模块可能都会定义一个名为 ``maximize`` 的函数而不会发生混淆--用户必须以模块名为前缀来引用它们。

顺便提一句,我称 Python 中任何一个 “.” 之后的命名为 *属性* --例如,表达式 ``z.real`` 中的 ``real`` 是对象 ``z`` 的一个属性。严格来讲,从模块中引用命名是引用属性:表达式 ``modname.funcname`` 中, ``modname`` 是一个模块对象,``funcname`` 是它的一个属性。因此,模块的属性和模块中的全局命名有直接的映射关系:它们共享同一命名空间![#]_

属性可以是只读或写的。后一种情况下,可以对属性赋值。你可以这样做: ``modname.the_answer = 42`` 。可写的属性也可以用 :keyword:`del` 语句删除。例如: ``del modname.the_answer`` 会从 ``modname`` 对象中删除 ``the_answer`` 属性。
属性可以是只读过或写的。后一种情况下,可以对属性赋值。你可以这样作: ``modname.the_answer = 42`` 。可写的属性也可以用 :keyword:`del` 语句删除。例如: ``del modname.the_answer`` 会从 ``modname`` 对象中删除 ``the_answer`` 属性。

不同的命名空间在不同的时刻创建,有不同的生存期。包含内置命名的命名空间在 Python 解释器启动时创建,会一直保留,不被删除。模块的全局命名空间在模块定义被读入时创建,通常,模块命名空间也会一直保存到解释器退出。由解释器在最高层调用执行的语句,不管它是从脚本文件中读入还是来自交互式输入,都是 :mod:`__main__` 模块的一部分,所以它们也拥有自己的命名空间。(内置命名也同样被包含在一个模块中,它被称作 :mod:`__builtin__` 。)

Expand Down Expand Up @@ -197,7 +197,7 @@ Python 的一个特别之处在于——如果没有使用 :keyword:`global` 语

一般,方法的第一个参数被命名为 self 。 这仅仅是一个约定:对 Python 而言,名称 self 绝对没有任何特殊含义。 (但是请注意:如果不遵循这个约定,对其他的 Python 程序员而言你的代码可读性就会变差,而且有些 类查看器 程序也可能是遵循此约定编写的。)

类属性的任何函数对象都为那个类的实例定义了一个方法。 函数定义代码不一定非得定义在类中:也可以将一个函数对象赋值给类中的一个局部变量。 例如::
类属性的任何函数对象都为那个类的实例定义了一个方法。 函数定义代码不一定非得定义在类中:也可以将一个函数对象赋值给类中的一个局部变量。 例如::

# Function defined outside the class
def f1(self, x, y):
Expand Down Expand Up @@ -291,7 +291,7 @@ Python 同样有限的支持多继承形式。多继承的类定义形如下例:

只能从对像内部访问的“私有”实例变量,在 Python 中不存在。然而,也有一个变通的访问用于大多数 Python 代码:以一个下划线开头的命名(例如 ``_spam`` )会被处理为 API 的非公开部分(无论它是一个函数、方法或数据成员)。它会被视为一个实现细节,无需公开。

因为有一个正当的类私有成员用途(即避免子类里定义的命名与之冲突),Python 提供了对这种结构的有限支持,称为 :dfn:`name mangling` (命名编码) 。任何形如 __spam 的标识(前面至少两个下划线,后面至多一个),被替代为 _classname__spam ,去掉前导下划线的 classname 即当前的类名。此语法不关注标识的位置,只要求在类定义内。
因为有一个正当的类私有成员用途(即避免子类里定义的命名与之冲突),Python 提供了对这种结构的有限支持,称为 :dfn:`name mangling`(命名编码) 。任何形如 __spam 的标识(前面至少两个下划线,后面至多一个),被替代为 _classname__spam ,去掉前导下划线的 classname 即当前的类名。此语法不关注标识的位置,只要求在类定义内。

名称重整是有助于子类重写方法,而不会打破组内的方法调用。 例如::

Expand Down
Loading