Python高级学习第二课(寒假)2022-1-4

重写

如果你的父类方法的功能不能满足你的需求,你可以在子类重写你父类的方法:
举例:

#父类Vehicle
class Vehicle(object):
    def __init__(self,name): #对象属性
        self.name = name
        print("我是交通工具(父类)")
    def function(self):
        print("交通工具可以带人类到达任何想去的地方")
from vehicle import Vehicle
#子类Bus
class Bus(Vehicle):
    def __init__(self):
        print("我是大客车(子类)")
    def function(self):
        print("大客车可以载人到达任何一个地方")

运行结果:
在这里插入图片描述

super()函数

super() 函数是用于调用父类(超类)的一个方法
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
下面是代码示例:

class Animal:
    def __init__(self,name,sex,leg):
        self.name = name
        self.sex = sex
        self.leg = leg
    def eat(self,food):
        print('%s喜欢吃%s'%(self.name,food))
from animal import Animal
class Cat(Animal):  #cat类继承animal类
    def __init__(self,name,sex,leg,tail):  #定义初始化构造函数,但是比父类多一个参数
        #animal.__init__(self,name,sex,leg)
        super().__init__(name,sex,leg)  #调用父类的初始化构造函数
        self.tail=tail
        print('猫有%s腿,和%s条tail'%(self.leg,self.tail))
from animal import Animal
from cat import Cat

thiscat = Cat('猫','小仙女',4,1)
thiscat.eat('老鼠')

property

1.Python内置的@property装饰器就是负责把一个方法变成属性调用的;

2.@property本身又创建了另一个装饰器@state.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作;

3.@property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。

运算符重载

常见运算符重载方法

构造函数和折构函数:_init_和 del
它们的主要作用是进行对象的创建和回收。
当实例创建时,就会调用__init__构造方法。
当实例对象被收回时,析构函数__del__会自动执行。
加减运算:add和_sub
重载这两个方法就可以再普通的对象上添加+ -运算符操作。
对象的字符串表达形式:repr__和__str
这两个方法都是用来表示对象的字符串表达形式:print()、str()方法会调用到__str__方法,print()、str()和repr()方法会调用__repr__方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值