使用excel统计学生成绩让相同学生分数名次相同-英雄云拓展知识分享
113
2023-11-13
【摘要】 本书摘自《Python 编程与应用实践》一书中第6章,第7节,由冯伟森,王建,杨宁主编。
6.7 私有化
在 Python 中,通常情况下属性都是 “public”, 也就是公有的,类所在模块和导入了 类所在模块的其他模块的代码都可以访问到这些属性。但是并不是所有的属性我们都可以 去访问,它们好像被隐藏了起来,这些我们称为私有化的属性。
Python 为类元素(属性和方法)的私有性提供初步的形式,我们用x 代表变量名或 方法名:
(1)x: 表示公有变量(或方法)。
(2) _x: 单前置下划线,表示私有化属性或方法。
(3)__x: 双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问。
(4) x : 双前后置下划线,用户名字空间的魔法对象或属性。例如, __init
(5)x_: 单后置下划线,用于避免与Python 关键词的冲突。
公有方法和私有方法一般指的是属于对象的方法,私有方法的名字以两个下划线__ 开始。每个对象都拥有自己的公有方法和私有方法,在这两类方法中都可以访问属于类和 对象的成员;公有方法可以直接通过对象名调用,私有方法不能通过对象名直接调用,只 能在实例方法中通过 self 调用或在外部通过Python 支持的特殊方法调用。
尽管 Python 没有在语法上把 private,protected,friend 或 protected friend 等特征内
建于语言中,但是可以按照用户的需要严格地定制访问权。
习 题
1. 内建函数 type() 做什么? type() 返回的对象是什么?
2. 你认为type(a)==type(b) 和type(a)is type(b)之间的不同是什么?为什么会选择 后者?函数 isinstance() 与这有什么关系?
3. 简单叙述一下类和实例对象的区别。
4. 为什么有的类要写 init__ 方法?它的作用是什么?
5. 怎样定义一个类的超类?
6. 查看整数3和字符串'hello'的对象类型,打印输出查看的结果。
7. 创建一个名为 Thing 的空类并将其打印出来。
8. 创建一个新的类 Thing2, 将abc 赋值给类特性 letters, 打印letters。 9. 定义一个学生类。有下面的类属性:
(1)姓名。
(2)年龄。
(3)成绩(语文,数学,英语)[每科成绩的类型为整数]。
类方法:
(1)获取学生的姓名。get_name() 返回类型: str。
(2)获取学生的年龄。get_age() 返回类型: int。
(3)返回3门科目中最高的分数。get_course() 返回类型:int。
写好类以后,可以定义2个同学测试一下:
zm=Student('zhangming',20,[69,88,100])
返回结果:
zhangming
20
100
10. 编写一个函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 如果大于5,则输出对象长度;否则,输出"NO"。
11. 编写一个 person 类,包含属性姓名、工作和工资,并输入"Sue Jones","dev", 100000进行验证。
12. 创建一个名为 Element 的类,它包含实例特性 name 、symbol 和 number 。使用 'Hydrogen'、'H'和1实例化一个对象,打印输出该对象的 name 属性。
13. 创建一个字典,包含这些键值对:'name':'Hydrogen'、'symbol':'H'和'number': 1。然后用这个字典实例化 Element 类的对象 hydrogen, 打印输出该对象的 name 属 性值。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~