下面代码在 main() 中有一行会导致错误,请找出来( )。 class Student: def __init__(self, n, s): self.__name = n self.__score = s def get_name(self): return self.__name def set_score(self, s): if __name__ == '__main__': stu = Student("Tom", 85) print(stu.get_name()) # ① stu.set_score(90) # ② print(stu.__score) # ③ print(stu.get_name()) # ④
A:第 ① 行
B:第 ② 行
C:第 ③ 行
D:第 ④ 行
正确答案:C
答案解析
分析类定义中属性的访问控制:__name 和 __score 为私有属性,仅能在类内部访问。get_name 方法提供对 __name 的外部访问。set_score 方法允许修改 __score 的值。在 main 函数中,stu.get_name() 调用合法,因该方法公开且存在。stu.set_score(90) 调用合法,因该方法定义并接受一个参数。直接访问 stu.__score 不被允许,因该属性为私有,外部无法直接访问。再次调用 stu.get_name() 合法,与第一次调用无异。需逐行检查每处操作是否符合 Python 对私有属性的访问规则。
试卷来源:202606 CCF-GESP编程能力等级认证Python六级真题