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和字符在该文档中出现的位置情况。
优点:搜索耗时短;
缺点:构建索引的时候较为耗时且维护成本较高;
一句话总结:
正排索引是从文档到关键字的映射(已知文档求关键字),倒排索引是从关键字到文档的映射(已知关键字求文档)