类与对象以及魔法方法打卡

类与对象

1、以下类定义中哪些是类属性,哪些是实例属性?

class C:
    num = 0
    def __init__(self):
        self.x = 4
        self.y = 5
        C.count = 6

num = 0、C.count = 6 为类的属性,
self.x=4、 self.y=5 为实例属性

2、怎么定义私有⽅法?

函数名前加上“__”两个下划线

3、尝试执行以下代码,并解释错误原因:

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

错误原因:在类中实现类的实例化

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

要求:

  • 平日票价100元
  • 周末票价为平日的120%
  • 儿童票半价
class Ticket():
   
    def  __init__(self,weekday=True,adult_num,child_num):
        price=100 * adult_num + 50 * child_num
        if weekday:
            self.adult_num = adult_num
            self.child_num = child_num
            self.price = price
        else:
            self.price=1.2 * p
            
    def price(self):
        print("总票价为 %d" % self.price)

bill=Ticket()
weekday=True
adult_num = 2
child_num = 1
bill.price()

   

1、上面提到了许多魔法方法,如__new__,__init__, __str__,__rstr__,__getitem__,__setitem__等等,请总结它们各自的使用方法。

__new__ :对象实例化时调用的第一个方法,至少需要一个参数cls,此参数代表要实例化的类。该方法对当前类进行实例化,并将当前类返回,传至 init 的 self 中。
__init__:类实例化时自动调用
__str__:当打印一个对象,使用%s格式化或者强制转换时候触发
__rstr__:没有这个
__getitem__:定义获取容器中元素的行为
__setitem__:定义设置容器中制定元素的行为

2、利用python做一个简单的定时器类

要求:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值