《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 10 章 答案

《Python程序设计(第3版)》[美] 约翰·策勒(John Zelle) 第 10 章 答案

答案仅供参考,若有错误欢迎指正

判断对错

  1. 通过调用构造方法创建新对象。
  2. 位于对象中的函数称为实例变量。
  3. Python 方法定义的第一个参数称为 this。
  4. 一个对象可能只有一个实例变量。
  5. 在数据处理中,有关人或事物的一组信息称为文件。
  6. 在 Python 类中,构造方法称为__init__。
  7. 文档字符串与注释是一样的。
  8. 一个方法终止后,实例变量就会消失。
  9. 方法名称应始终以一条或两条下划线开始。
  10. 从类定义之外直接访问实例变量是不好的风格。

解答

  1. T
  2. F
  3. F
  4. F
  5. F
  6. T
  7. F
  8. F
  9. F
  10. T

多项选择

  1. Python 保留字________开始了类定义。
    a. def
    b. class
    c. object
    d. init
  2. 具有四个形式参数的方法定义通常在调用时有________个实际参数。
    a. 3
    b. 4
    c. 5
    d. 看情况
  3. 方法定义类似于________。
    a. 循环
    b. 模块
    c. 导入语句
    d. 函数定义
  4. 在一个方法定义中,可以通过表达式________访问实例变量 x。
    a. x
    b. self.x
    c. self [x]
    d. self.getX()
  5. 定义一个类的“私有”方法,Python 的惯例是用________开始方法名称。
    a. “private”
    b. 井号(#)
    c. 下划线(_)
    d. 连字符(-)
  6. 将细节隐藏在类定义中,术语称为________。
    a. 模糊
    b. 子类化
    c. 文档
    d. 封装
  7. 如果包含在________之中,Python 字符串字面量可以跨越多行。
    a. "
    b. ’
    c. “”"
    d. \
  8. 在 Button 控件中,实例变量 active 的数据类型是________。
    a. bool
    b. int
    c. float
    d. str
  9. 以下________方法不属于本章的 Button 类的一部分。
    a. activate
    b. deactivate
    c. setLabel
    d. clicked
  10. 以下________方法是本章的 DieView 类的一部分。
    a. activate
    b. setColor
    c. setValue
    d. clicked

解答

  1. b
  2. a
  3. d
  4. b
  5. c
  6. d
  7. c
  8. a
  9. c
  10. c

讨论

  1. 解释实例变量和“常规”函数变量之间的相似性和差异。

解答

  • 实例变量存在于对象中,只要对象存在,就会保持其数值。它们可以用点符号来访问。
  • 普通变量不使用点符号访问,当方法终止时,普通变量就会消失。
  1. 根据类定义中可能找到的实际代码说明以下内容。
    a.方法
    b.实例变量
    c.构造方法
    d.取值方法
    e.设值方法

解答

a. 方法是一个 "住在 "对象中的函数。一个方法的定义看起来像一个类中的函数定义。方法的第一个参数是self,它指的是被应用于该方法的对象。

b. 实例变量是一个 "住在 "一个对象里面的变量。在语句 self.value = 1 中, value 是一个实例变量,其值被设置为1。

c. 构造方法是构造一个对象的方法。在 Python 中,它是一个名为 __init__ 的方法。

d. 取值方法是返回一个变量的值的方法,例如:

def getValue(self):
    return self.value

e. 设值方法是一种改变一个或多个实例变量值的方法,例如:

def roll(self):
    self.value = randrange(1,7)
  1. 显示以下无聊的程序产生的输出:
class Bozo:
    def __init__(self, value):
        print("Creating a Bozo from:", value)
        self.value = 2 * value

    def clown(self, x):
        print("Clowning:", x)
        print(x * self.value)
        return x + self.value

def main():
    print("Clowning around now.")
    c1 = Bozo(3)
    c2 = Bozo(4)
    print(c1.clown(3))
    print(c2.clown(c1.clown(2)))

main()

解答

Clowning around now.
Creating a Bozo from: 3
Creating a Bozo from: 4
Clowning: 3
18
9
Clowning: 2
12
Clowning: 8
64
16

注意:可能是书的版本问题,原书中这题的main()函数里后两个print用的是Python2里的语句,与第一个print()函数不一致,需改成Python3里的print()才能正常运行。

编程练习

未完待续……

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有一只海豚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值