单选题 实现一个自定义迭代器,必须在类中定义哪两个魔法方法?
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