python如何继承父类的属性_如何理解Python中类的继承?

天气转冷,大家穿上秋裤了没有?

昨天我们学习了装饰器的用法,在不改变原本代码的情况下,增添了新的功能,就像冬天套在裤子里的秋裤一样,外表还和以前一样,内里却更加保暖。

我们在现实生活里,裤子里能穿什么,我们都是心里有数的,但是在Python里,要限制对象里可以穿什么东西,也就是能设置什么属性,就要用一个词来限定了。

这个词就是 slots

e6ecd0bc12d724850019163be729ea01.png

slots这个单词在英文中的原意是可以插入东西的窄缝,引申义就是限制元素的容器

slots 在Python中的作用就是限制对象能使用的属性,不过slots 只能在当前类里对其类的对象进行限制,对子类并不起作用。在Python中的确定的用法是 slots前后各有两个下划线,样子就是这个样子 ' __slots__ '。

具体的代码如下

class Person(object):

# 限定Person对象只能绑定_name, _age和_sex属性

__slots__ = ('_name', '_age', '_sex')

def __init__(self, name, age):

self._name = name

self._age = age

@property

def name(self):

return self._name

@property

def age(self):

return self._age

@age.setter

def age(self, age):

self._age = age

def play(self):

if self._age <= 16:

print('%s正在玩飞行棋.' % self._name)

else:

print('%s正在玩斗地主.' % self._name)

在上述的代码里 在代码的一开始就有 __slots__ 这样的固定用法来限制了 Person这个对象所能绑定的属性,只有 名字,年龄,性别。这三个属性。

如此限定之后,person这个对象便只能有名字,年龄,性别这三个属性,如果要设置其他属性,程序的运行就会出现错误。

对象属性的限制也是为了进行面向对象的开发,而面向对象的的内容就是类与对象。

ff2258013bcd1210127a125dce71855a.png

那么类与类之间的关系呢?

类与类之间的关系一般来说有三种。

is-a has-a use-a

is-a关系 也叫继承关系或泛化关系,比如手机和电子产品,汽车和运输工具。是大类中的一个单独产品。

has-a关系 也叫关联关系,关联关系具体来说就是组成一个系统的零件与总系统的关系,比如引擎与汽车,电池与手机,这种关系也可以叫做聚合关系,若是整体与局部同时存在,又会同时消亡的话,那么这种关系又可以叫做合成关系

use-a关系 也叫依赖关系,比如说司机要去一个地方送货,送货的过程需要用到汽车,那么司机与汽车的关系就是依赖关系。

利用这些关系,就可以在已有类的基础上创建新的类,从而实现代码的复用,代码的复用在开发中不仅可以减少工作量,更利于代码的管理与维护

59cacf41a2f0555b09c04666265b7efa.png

继承便是代码的复用,这种方法就是让子类从父类那里将属性和方法直接继承下来,减少重复代码的编写,子类不仅可以继承父类的属性和方法,更可以定义自己的特有的属性和方法,这就是面向对象中所说的多态

因为子类可以在父类的基础上设置自己特有的属性和方法,所以子类会比父类拥有更多的能力,也是如此,在实际的开发中,常常会出现用子类替换父类的现象。

面向对象是Python的一大特点,知晓其特点对我们之后的开发过程有莫大的作用。

今天便就说这么多了。

如果对文章中的内容有什么困惑的地方,可以在评论区提出自己的问题,学记同大家一起交流,解决各种问题,一起进步。

青年学记 陪伴着各位青年

e7fd931d64570a238297451e7b119653.png

作者:青年学记 一名不断进步的程序猿

一起学习 一起进步

走向自立

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值