本章主题 ♦ 引言 ♦ 面向对象编程 ♦ 类 ♦ 实例 ♦ 绑定与方法调用 ♦ 子类,派生和继承 ♦ 内建函数 ♦ 定制类 ♦ 私有性 ♦ 授权与包装 ♦ 相关模块 ♦ 新式类的高级特性 在我们的描绘中,类最终解释了面向对象编程(OOP, object-oriented programming)思想。本章中,我们首先将给出一个总体上的概述,涵盖了Python中使用类和OOP的所有主要方面。其余部分
在 Python 中,我们使用 def 语句来定义函数,比如: def double(x): return 2 * x 除了用上面的方式定义函数,Python 还提供了一个关键字 lambda,让我们可以创建一个匿名函数,也就是没有名称的函数。它的形式如下: lambda 参数: 表达式 关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返
在函数式编程中,我们可以将函数当作变量一样自由使用。一个函数接收另一个函数作为参数,这种函数称之为高阶函数(Higher-order Functions)。 看一个简单的例子: def func(g, arr): return [g(x) for x in arr] 上面的代码中,func 是一个高阶函数,它接收两个参数,第 1 个参数是函数,第 2 个参数是数组,func 的功能是将函数
使用其他操作系统用户希望能运行UNIX类型的脚本能在他们的系统上运行, 因此也希望能在这本书里能学到这方面的知识. 来自Cygnus的 Cygwin 软件结合来自Mortice Kern的 MKS软件包(MKS utilities) 可以给Windows添加shell脚本的兼容. 已经有正式宣布Windows的将来版本会包含Bash风格的命令行和脚本能力,但目前为止还没有结果.
写脚本时养成结构化和系统方法的习惯. 即使你在信封背后随便做一下草稿也是有益的,要养成在写代码前花几分钟来规划和组织你的想法. 这儿是一些风格的指南. 注意这节文档不是想成为一个官方Shell编程风格. 32.1. 非官方的 Shell 脚本风格 注释你的代码.这会使你的代码更容易让别人理解和赏识,同时也便于你维护. 1 PASS="$PASS${MATRIX:$(($RANDOM%${#M
PHP语言是一个短生命周期的Web编程语言,很多PHPer已经形成了fpm下编程的思维定势。实际上在Swoole出现之后,这种串行化编程的模式早已被打破。使用Swoole完全可以轻易实现更灵活的并发编程。 场景介绍 假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。在传统串行化Web编程中,我们一般思路是这样: 设置 form 表单,用户提交竞猜后保存到 MySQL/Redi
过滤程序是 UNIX® 中一种常见的应用程序, 它从标准输入 stdin 读入数据, 然后进行相关处理, 最后将结果写到标准输出 stdout。 在本节中, 我们将编写一个简单的过滤程序, 从而学习如何从标准输入 stdin 和标准输出 stdout 进行读写。 这个过滤程序将按字节把输入转换成16进制的数字, 并在每个数字的后面添加一个空格。 %include 'system.inc'
手工编写一个JSP程序要比编写一个Servlet容易得多,只需要建立一个空的目录,然后在目录中建立JSP文件即可。 在<Tomcat安装目录>\webapps目录中建立一个myjsp目录,并在该目录中建立一个simple.jsp文件(文件要以UTF-8格式保存),simple.jsp的主要功能是使用Java代码显示服务器的当前时间,并输出name请求参数的值。simple.jsp的代码如下: <!
2.7 编程案例:查找问题 下面我们通过一个简单程序来综合应用本章所介绍的知识。 实际应用中经常遇到“查找”问题:即从一个数据集中查找我们需要的数据。查找技术 是程序设计的一个重要技术,存在着许多高效的查找算法。在此,我们考虑一种很简单的查 找问题。场景:下面我们编一个小程序。基本的 IPO 模式。 假如我们要编一个程序,它接收用户输入的月份数值(1~12),并输出对应月份的英文 缩写。例如,当用
Boost.Bind Bind是对标准库的绑定器bind1st 和 bind2nd的泛化。这个库支持使用统一的语法将参数绑定到任何类似于函数行为的东西,如函数指针、函数对象,以及成员函数指针。它还可以通过嵌套绑定器实现函数组合。这个库不要求那些对标准库绑定器的强制约束,最显著的就是不要求你的类提供typedefs result_type, first_argument_type, 和 second
org.hibernate.cfg.Configuration 实例代表了一个应用程序中 Java 类型到SQL数据库映射的完整集合。org.hibernate.cfg.Configuration 被用来构建一个(不可变的(immutable))org.hibernate.SessionFactory。映射定义则由不同的 XML 映射定义文件编译而来。 你可以直接实例化 org.hibernate
我们已经研究了类和对象的多个内容以及与它们相关的多个术语。通过本章,你已经了解了面向对象的编程的优点和缺陷。Python是一个高度面向对象的语言,理解这些概念会在将来有助于你进一步深入学习Python。 接下来,我们将学习如何处理输入/输出已经如何用Python访问文件。
面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过 继承 机制。继承完全可以理解成类之间的 类型和子类型 关系。 假设你想要写一个程序来记录学校之中的教师和学生情况。他们有一些共同属性,比如姓名、年龄和地址。他们也有专有的属性,比如教师的薪水、课程和假期,学生的成绩和学费。 你可以为教师和学生建立两个独立的类来处理它们,但是这样做的话,如果要增加一个新的共有属性,就意味着要
目录表 简介 self 类 创建一个类 对象的方法 使用对象的方法 __init__方法 使用__init__方法 类与对象的变量 使用类与对象的变量 继承 使用继承 概括 简介 到目前为止,在我们的程序中,我们都是根据操作数据的函数或语句块来设计程序的。这被称为 面向过程的 编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为 面向对象的 编程理念。在大多数时
本主题中的某些内容可能不适用于某些语言。 用 OLE 编程标识符(有时也称 ProgID)可创建一个Automation 对象。下表中列出了 ActiveX 控件、Microsoft Office 应用程序和“Microsoft Office Web 组件”的 OLE 编程标识符。 ActiveX 控件 Microsoft Access Microsoft Excel Microsoft Grap