作业5-用类实现抽象和封装

1.Python中,不能利用对象访问类的私有成员。(T/F)

这个说法是 F(错误) 的。

在 Python 中,并没有真正严格的“私有成员”
通常我们约定在属性或方法名前加两个下划线 __(例如 __private_var)来表示“私有”,但这实际上只是触发了 名称修饰(name mangling),而不是完全禁止访问。

私有成员命名规则
在类中,以双下划线开头且不以双下划线结尾的属性/方法,会被 Python 自动改名(name mangling),规则是:
_类名__属性名

例如:

class MyClass:
    def __init__(self):
        self.__private = 10

obj = MyClass()

你不能直接用 obj.__private 访问,因为会报 AttributeError
但你可以用 obj._MyClass__private 访问到它。

所以 Python 中仍然可以访问这些“私有成员”,只是需要知道改名后的名称。
因此题目说 “不能利用对象访问类的私有成员” 是错误的。

2.Python中一切内容都可以称为对象。(T/F)

分析
在 Python 中,所有的数据(包括数字、字符串、函数、类、模块等)都是对象,或者与对象相关。这是 Python 的设计哲学之一 —— “一切皆对象”。
因此这个说法是正确的。

答案T

3.在Python中定义类时实例方法的第一个参数名称必须是self。(T/F)

分析
Python 规定实例方法的第一个参数必须代表实例本身,但这个参数的名称不强制叫 self,你可以用任何合法的参数名(比如 thisme 等),只是约定俗成用 self
因此“必须”是 self 是错误的。

答案F

4.如何输入空格隔开的数字并转为列表?

a = list(map(int, input().split()))
分类: Languages 标签: Python

评论

暂无评论数据

暂无评论数据

目录