Python编程语言---Task07:类、对象与魔法方法

练习题
1、上面提到了许多魔法方法,如__new__,init, str,rstr,getitem,__setitem__等等,请总结它们各自的使用方法。

new(cls[, …]) 在一个对象实例化的时候所调用的第一个方法,在调用__init__初始化前,先调用_new_。
new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由 Python 解释器自动提供,后面的参数直接传递给 init
new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由 Python 解释器自动提供,后面的参数直接传递给_init
new__对当前类进行了实例化,并将实例返回,传给__init__的self。但是,执行_new,并不一定会进入_init,只有__new__返回了, 当前类cls的实例,当前类的__init__才会进入。
init(self[, …]) 构造器,当一个实例被创建的时候调用的初始化方法
str(self):
当你打印一个对象的时候,触发_str

当你使用%s格式化的时候,触发_str

str强转数据类型的时候,触发_str

repr(self)
repr是str的备胎
有__str__的时候执行_str_,没有实现__str__的时候,执行_repr_
repr(obj)内置函数对应的结果是__repr__的返回值
当你使用%r格式化的时候 触发_repr_
getitem(self, key)定义获取容器中元素的行为,相当于self[key]。
setitem(self, key, value)定义设置容器中指定元素的行为,相当于self[key] = value。
2、利用python做一个简单的定时器类

要求:

定制一个计时器的类。
start和stop方法代表启动计时和停止计时。
假设计时器对象t1,print(t1)和直接调用t1均显示结果。
当计时器未启动或已经停止计时时,调用stop方法会给予温馨的提示。
两个计时器对象可以进行相加:t1+t2。
只能使用提供的有限资源完成。

1

  File "<ipython-input-20-e64526252f1e>", line 34
    print(Timer.__add__(t1,t2)
                              ^
SyntaxError: unexpected EOF while parsing   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值