Python学习总结(四)类的继承性

Python中类的继承

单继承的语法

class 基类:
	def 方法():
		pass

class 父类:
	pass

这样子类就继承了父类的属性和方法。


一个实例

class Animal:

    def __init__(self, name=None):
        self.name = name

    def func(self):
        pass


class Monkey(Animal):

    def __init__(self, year, name=None):
        self.year = year
        self.name = name  # 这里输入.的时候按Tab会提示self.name,证明成功继承

    def __str__(self):
        return "year:%d name:%s" % (self.year, self.name)

    def func(self):  # 如果想要重写父类的方法,只需要在子类中重定义该方法即可
        super().func()  # super是一个特殊的类,想要增加父类方法的内容,可以使用super调用父类方法
        # 同样可以使用  父类名.方法()  的方式调用,但不推荐使用
		

mk = Monkey(18, "paipai")
print(mk)

tips:
外界无法直接访问到一个类的私有属性/方法,子类无法直接访问到父类的私有属性/方法。
想要突破以上限制,就需要使用一些公有的函数。
可以类比于C++,在类的private下创建了一个变量,想要访问它,就需要int get_num(){return num;}


多继承的语法

class A:  # 父类1
    pass


class B:  # 父类2
    pass


class C(A, B):  # 派生类,若两父类有相同方法名时尽量不要使用多继承
    pass

# 可以使用 print(C.__mro__) 来查看当出现两个父类方法名相同时的查找顺序。

新式类与旧式类

object是 Python 为所有对象提供的基类,提供一些内置的方法和属性,可以使用dir函数查看

  • 新式类:以object为基类的类
  • 旧式类:不以object为基类的类

python3.x中定义类时,如果没有指定父类,则默认以object为该类的基类
python2.x中定义时,若无指定则不会以object为基类

今后在定义类时,如果没有父类,最好统一继承自object

class 类名(object):
	pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值