python学习Task07

类、对象与魔法方法

类、对象

  • 类(class):对事物的抽象概括
  • 对象(object):是类的一个实例
  • 类是对象的类型,通俗的讲就是,你定义一个整型的变量,变量类型是int,而你定义一个该类的对象,则对象的类型是类
  • 类的作用就是封装
  • 类对象:创建一个类,其实也是一个对象也在内存开辟了一块空间,称为类对象,类对象只有一个。

魔法方法

即类的专有方法,一些内置函数或者各种符号,值得注意是根据子类方法会覆盖父类方法的特性,达到重载运算符的效果,例如:

  • init : 构造函数,在生成对象时调用

  • del : 析构函数,释放对象时使用

  • repr : 打印,转换

  • setitem : 按照索引赋值

  • getitem: 按照索引获取值

  • len: 获得长度

  • cmp: 比较运算

  • call: 函数调用

  • add: 加运算

  • sub: 减运算

  • mul: 乘运算

  • truediv: 除运算

  • mod: 求余运算

  • pow: 乘方

练习题

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

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

答:

  • 类属性:num=0
  • 实例属性:self.x = 4,self.y = 5,C.count = 6
    2、怎么定义私有方法?
    答:在变量与函数前加’__'两个下划线
    3、尝试执行以下代码,并解释错误原因:
class C:
    def myFun():
        print('Hello!')
    c = C()
    c.myFun()
  • 错误1.实例化类对象时应该在类外部
  • 错误2.类方法在定义时,至少需要一个参数,一般为self

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

要求:

  • 平日票价100元
  • 周末票价为平日的120%
  • 儿童票半价
class Ticket:

    def __init__(self, num_adult, num_children):
        self.value = 100
        self.adult = num_adult
        self.children = num_children

    def compute(self, weekday):
        value = self.value * self.adult + self.value * self.children * 0.5
        if weekday:
            return value
        else:
            return 1.2*value

ticket = Ticket(2, 1)
value = ticket.compute(0)
print(value)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值