类与对象

1、以下类定义中哪些是类属性,哪些是实例属性?
类属性:类里面方法外面定义的变量称为类属性。类属性所属于类对象并且多个实例对象之间共享同一个类属性,说白了就是类属性所有的通过该类实例化的对象都能共享。
实例属性:实例属性和具体的某个实例对象有关系,并且一个实例对象和另外一个实例对象是不共享属性的,说白了实例属性只能在自己的对象里面使用,其他的对象不能直接使用,因为self是谁调用,它的值就属于该对象。
2、怎么定义私有⽅法?
在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会为私有的了。
3、尝试执行以下代码,并解释错误原因:

class C:def myFun():print('Hello!')c = C()c.myFun()

创建实例对象时不应该在类定义中;类中的每个方法都必须至少有一个参数self,且必须是方法的第一个形参,self参数代表当前对象,即def myFun(self)。

class C:def myFun(self):print('Hello!')c = C()
c.myFun()

4、按照以下要求定义一个游乐园门票的类,并尝试计算2个成人 + 1个小孩平日票价。
要求:

  • 平日票价100元
  • 周末票价为平日的120 %
  • 儿童票半价
class Ticket():usual_ticket = 100weekend = 120def calculate_usual(self, adult, children):money = self.usual_ticket * adult + self.usual_ticket // 2 * childrenreturn moneydef calculate_weekend(self, adult, children):money = self.weekend * adult + self.weekend // 2 * childrenreturn moneyt = Ticket()
print(t.calculate_usual(2, 1))

魔方方法

1、上面提到了许多魔法方法,如__new__,__init__, __str__,__rstr__,__getitem__,__setitem__等等,请总结它们各自的使用方法。
__init__在类实例化时会自动调用。
new__对当前类进行了实例化,并将实例返回,传给__init__的self。但是,执行了__new,并不一定会进入__init,只有__new__返回了,当前类cls的实例,当前类的__init__才会进入。
__str__在打印对象,用%s格式化以及强制转换数据类型时触发。
__rstr__在没有实现__str__以及使用%r格式化的时候触发。
__getitem__定义获取容器中元素的行为,相当于self[key]。
__setitem__定义设置容器中指定元素的行为,相当于self[key] = value。
2、利用python做一个简单的定时器类

要求:

  • 定制一个计时器的类。
  • startstop方法代表启动计时和停止计时。
  • 假设计时器对象t1print(t1)和直接调用t1均显示结果。
  • 当计时器未启动或已经停止计时时,调用stop方法会给予温馨的提示。
  • 两个计时器对象可以进行相加:t1+t2
  • 只能使用提供的有限资源完成。
import timeclass Timer:def __init__(self):print('未开始计时')self.info = '未开始计时'self.start_time = Noneself.sec = Nonedef start(self):print('开始计时')self.start_time = time.time()self.info = '正在计时'def stop(self):try:self.sec = time.time() - self.start_timeexcept:print('未开始计时或计时已结束')else:print('停止计时')self.info = '已计时:%f s' % self.secdef __str__(self):return self.infodef __add__(self, others):return '共计时 %f s' % (self.sec + others.sec)t1 = Timer()
t1.stop()
t1.start()
time.sleep(1)
t1.stop()
print(t1)
t2 = Timer()
t2.start()
time.sleep(2)
t2.stop()
print(t1+t2)
#未开始计时
#未开始计时或计时已结束
#开始计时
#停止计时
#已计时:1.002307 s
#未开始计时
#开始计时
#停止计时
#共计时 3.002707 s

task07 类与对象、魔方方法相关推荐

  1. python如何对一个属性或方法进行封装_python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

  2. String类的对象的方法 格式小结 java 1202

    String类的对象的方法 格式小结 java 1202 定义一个字符串 两种方法可以定义字符串 String 字符串对象 = "内容" String 字符串对象 = new St ...

  3. java猫抓老鼠_用猫抓老鼠的实例理解java中面向对象的编程与类和对象以及方法的概念...

    今天看到马士兵讲的关于面向对象编程的思路,用了一个猫抓老鼠的例子,我觉得这个例子非常形象,于是写在这里,方便学习理解和以后查看 class cat{ //声明一个类–"猫" int ...

  4. Java_面向对象基础(类、对象、方法和构造函数)

    Java的面向对象基础(类.对象.方法和构造函数) 面向对象的基本概念 面向对象的设计思想 什么是类 什么是对象 类的定义 设计面向对象的例子 步骤一:设计动物这个类 步骤二:创建具体的动物 步骤三: ...

  5. 八、Java面向对象编程(类、对象、方法、重载、可变参数、作用域、构造器、this本质)

    文章目录 Java面向对象编程(类.对象.方法.重载.可变参数.作用域.构造器.this本质) 一.类与对象 1. 类与对象的引出 2. 使用现有技术解决 3. 现有技术解决的缺点分析 4. 类与对象 ...

  6. python类、对象、方法、属性之类与对象笔记

    为什么80%的码农都做不了架构师?>>>    python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... ...

  7. c#之旅--第六天(类,对象,方法)

    面向对象和类 类:类是一组具有相同数据结构和相同操作的对象的集合.类是对一系列具有相同性质的对象的抽象,是对对象共同特征的描述. 对象:对象可以是现实生活中的一个物理对象,还可以是某一类概念实体的实例 ...

  8. java 对象 方法_java——类、对象、方法

    一.类 1.Java语言把一组对象中相同属性和方法抽象到一个Java源文件就形成了类. 一个java文件可以有多个类,但是每一个类都会生成一个class字节码文件. 如果class 前加public ...

  9. python类和对象介绍_python中的类,对象,方法,属性等介绍

    注:这篇文章写得很好.加底纹的是我自己的理解 python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象...... 我们通过描述属性( ...

最新文章

  1. C语言register关键字—最快的关键字
  2. 用iPhone给林徽因拍照会是啥样?这款“穿越相机”把老照片换成现代风
  3. 抄2gua一篇文章提醒自己
  4. 我的vim 配置——nerdtree、ack vim、vim sneak
  5. vmware上给根分区增加空间以及创建逻辑卷
  6. leetcode 64. 最小路径和
  7. learn Linux sed command
  8. 深入浅出理解锁之—— AbstractQueuedSynchronizer
  9. JEPLUS表格组件数据平铺——JEPLUS软件快速开发平台
  10. docker镜像制作(二)——构建企业镜像LAMP+BBS
  11. MVC是架构模式,而不是设计模式
  12. Linux —— 常用命令集合
  13. .c和.h文件的区别(转载)
  14. 室内定位---UWB测距及定位原理
  15. 从头开始学JavaScript (十三)——Date类型
  16. 第二次 HDOJ 1003
  17. OBS 录制黑屏的解决方法
  18. 51单片机学习笔记0 -- 仿真软件安装(Protues8.0)
  19. 华为通用软件工程师面经
  20. 【问题整理】计算机相关

热门文章

  1. “增长黑客”与LBS
  2. eclipse如何配置tomcat?
  3. 您当前未使用连接到nvidia gpu的显示器-解决方案
  4. 如何快速找到手机中的App,教程来啦,怎样快速查找手机里的软件
  5. vuejs实现很多照片组成爱心样式
  6. 腾讯---即时通讯im--在聊天消息打开文件的解决方案
  7. W-数据表名区分大小写问题解决
  8. Android 网络 --framework层面 -two
  9. 字体,镑,像素之间的联系,留着做页面用
  10. 关于使用友盟第三方平台集成第三方分享