python面试总结-【多态】【倒排索引和普通索引】

1.多态是怎么实现的?

基类的同一个方法在不同派生类对象中具有不同的表现和行为。派生类继承了基类行为和属性之后,还会增加某些特定的行为和属性,同时还可能会对继承来的某些行为进行一定的改变,这都是多态的表现形式。

例如以下示例:

class Person:            # 定义基类
    def show(self):
        print("I am Grandfather")


class Childone(Person):   # 派生类,覆盖了基类的show()方法
    def show(self):
        print("I am Childone")


class Childsecond(Person):     # 派生类,覆盖了基类的show()方法
    def show(self):
        print("I am Childsecond")


class NOname(Person):     # 派生类,没有覆盖基类的show()方法
    pass


x = [item() for item in (Person, Childone, Childsecond, NOname)]   # 遍历基类和派生类对象并调用show()方法

for item in x:
    item.show()

运行结果:

I am Grandfather
I am Childone
I am Childsecond
I am Grandfather

倒排索引跟普通索引的区别

参考:https://www.cnblogs.com/AndyStudy/p/9042032.html

  • 正排索引:
    正排索引是指文档ID为key,表中记录每个关键词出现的次数,查找时扫描表中的每个文档中字的信息,直到找到所有包含查询关键字的文档。

优点:易维护;
缺点:搜索的耗时太长;

  • 倒排索引
    由于正排的耗时太长缺点,倒排就正好相反,是以word作为关键索引。表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。

优点:搜索耗时短;
缺点:构建索引的时候较为耗时且维护成本较高;

一句话总结:
正排索引是从文档到关键字的映射(已知文档求关键字),倒排索引是从关键字到文档的映射(已知关键字求文档)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值