单选题 在使用生成器时,当代码运行到yield语句时会发生什么?

A、 函数彻底执行完毕,并释放所有局部变量的内存
B、 函数返回一个值,并在原地暂停(挂起)冷冻,保留所有局部变量状态
C、 抛出StopIteration异常并退出循环
D、 立即从函数的开头重新开始执行
下载APP答题
由4m***cs提供 分享 举报 纠错

相关试题

单选题 实现一个自定义迭代器,必须在类中定义哪两个魔法方法?

A、__init__ 和 __next__
B、__iter__ 和 __next__
C、__iter__ 和 __len__
D、__str__ 和 __iter__

单选题 关于Python的raise语句,以下说法错误的是:

A、raise 用于在程序中主动抛出异常
B、在except块中单独使用不带参数的raise会重新抛出当前捕获的异常
C、raise只能抛出Python内置的异常,不能抛出用户自定义的异常
D、执行raise后,当前函数未执行的代码将被跳过,程序开始向上寻找捕获逻辑

单选题 关于面向对象设计的SOLID原则,以下哪个说法正确描述了里氏替换原则(LSP)?

A、一个类应该只有一个引起它变化的原因
B、软件实体应当对扩展开放,对修改关闭
C、子类对象必须能够替换掉它们的父类对象,而不会破坏程序的正确性
D、高层模块不应该依赖低层模块,两者都应该依赖于抽象

单选题 执行代码 list(range(5, 1, -1)) 的输出结果是:

A、[5, 4, 3, 2, 1]
B、[5, 4, 3, 2]
C、[4, 3, 2, 1]
D、[]

单选题 观察以下代码,当调用g = my_gen()时,控制台的打印情况是: def my_gen(): print("Hello") yield 1 g = my_gen()

A、打印"Hello"
B、打印1
C、打印"Hello"并返回1
D、什么都不打印

单选题 在Python中,关于变量和内存管理的说法错误的是:

A、变量不需要显式声明类型
B、两个变量的值相同,它们的id()绝对相同
C、Python使用引用计数和垃圾回收机制来管理内存
D、_is_sorted 这种以下划线开头的变量通常用于表示私有属性或状态标签

单选题 根据里氏替换原则的行为约束(Behavioral Constraints),子类重写父类方法时:

A、可以任意强化前置条件
B、可以任意削弱后置条件
C、前置条件不能强化,后置条件不能削弱
D、必须保证两者的代码实现完全一致

单选题 下列哪种Python内置数据类型不是可迭代对象(Iterable)?

A、list
B、int
C、str
D、dict