Python程序第二套输出如何优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计750个文字,预计阅读时间需要3分钟。
难度级别:中级
预测以下Python程序的输出:
pythonclass Acc: def __init__(self, id): self.id=id id=555 self.acc=Acc(111) print(self.id)
程序输出:111
解释:
类`Acc`的实例化过程中,`id`变量在赋值给`self.id`之前被重新赋值为555,但这个值并不会影响`self.id`的值,因为`self.id`的赋值操作已经完成。接着,程序尝试创建一个指向自身的`Acc`实例`self.acc`,其`id`为111。由于Python的递归限制,这会导致无限递归,但在这个例子中,由于`print(self.id)`在创建实例之前执行,因此输出将是111。
难度级别: 中级
预测以下 Python 程序的输出。
程序一:
class Acc:def __init__(self, id):
self.id = id
id = 555
acc = Acc(111)
print acc.id
输出:
111解释: 类“Acc”的实例化自动调用方法__init__并将对象作为self参数传递。111 被分配给称为 id 的对象的数据属性。值“555”没有保留在对象中,因为它没有分配给类/对象的数据属性。
本文共计750个文字,预计阅读时间需要3分钟。
难度级别:中级
预测以下Python程序的输出:
pythonclass Acc: def __init__(self, id): self.id=id id=555 self.acc=Acc(111) print(self.id)
程序输出:111
解释:
类`Acc`的实例化过程中,`id`变量在赋值给`self.id`之前被重新赋值为555,但这个值并不会影响`self.id`的值,因为`self.id`的赋值操作已经完成。接着,程序尝试创建一个指向自身的`Acc`实例`self.acc`,其`id`为111。由于Python的递归限制,这会导致无限递归,但在这个例子中,由于`print(self.id)`在创建实例之前执行,因此输出将是111。
难度级别: 中级
预测以下 Python 程序的输出。
程序一:
class Acc:def __init__(self, id):
self.id = id
id = 555
acc = Acc(111)
print acc.id
输出:
111解释: 类“Acc”的实例化自动调用方法__init__并将对象作为self参数传递。111 被分配给称为 id 的对象的数据属性。值“555”没有保留在对象中,因为它没有分配给类/对象的数据属性。

