base.py 中 __getitem__ 方法的继承

来源:7-7 完善序列化

abulaka

2019-03-27

__getitem__是flask的内置函数,我们自己定义的方法如果是以 __ 开头的话,可以简单的理解为私有方法,也就是说不可以被外界直接通过模型对象调用。在 base.py 中定义的 def getitem(self, item) 方法,是私有的吗,会被子类继承吗,python 中的这种继承应该怎么理解啊。

另外还有一个问题,既然像下面定义以后就可以通过 [] 方式访问对象的属性,为什么 python 不在python的基类中添加这个实现,而需要我们自己去实现呢。因为这个也是一个很通用的获取属性值的方式。

def __getitem__(self, item):
    return getattr(self, item)
写回答

1回答

7七月

2019-03-28

python的很对集合类里都有这个模式方法。这相当于是覆盖和重写。用来实现自己的业务逻辑。 

方法都是可以被继承的呀,python没有private的概念。。。。 java里private不能被继承,protected可以。

0
2
7七月
回复
abulaka
已经回答了吧?第一句话就是的啊。集合类里都有这个方法,你定义的是覆盖。
2019-03-28
共2条回复

Python Flask高级编程之RESTFul API前后端分离精讲

RESTFul+权限管理+token令牌+扩展flask=提升编程思维

2052 学习 · 359 问题

查看课程