栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:子类可以重载继承的方法吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:子类可以重载继承的方法吗?

重写的方法原则上不必彼此具有相同的参数,但是它们必须具有与调用它们相同的形式参数。因此,由于任何处理程序都可以通过

body
调用它
get
,是的,它们必须相同。就此而言,重写的重点是调用者不知道对象的确切类,因此,如果它们都不具有相同的参数,通常调用者将不知道传递什么。因此,我认为使用不同参数进行覆盖将是不寻常的棘手问题。

如果更改了args,则使用yes,则必须更改要匹配的函数。这与继承无关,这就是Python函数的工作方式。

如果您想要更多的灵活性,可以使用关键字参数,这是将字典作为参数传递的一种不错的方式:

class Detail(baseHandler):    def body(self, **kwargs):        print kwargs['CSIN']class MainPage(baseHandler):    def body(self, **kwargs): # can ignore kwargsclass Cart(baseHandler):    def body(self, **kwargs): # can ignore kwargsclass baseHandler(webapp.RequestHandler):    def get(self, CSIN=None):        self.body(CSIN = CSIN, some_new_arg = 3)class SomeNewHandler(baseHandler):    def body(self, **kwargs):        print kwargs['some_new_arg']

不过,我对此确实有一点疑问:如果您要添加很多新参数,并且大多数实现都忽略了大多数参数,那么

body
这些参数可能并不是真正的功能。实际上,参数可能是处理程序对象状态的一部分,而您恰好只是将其作为参数传递。显然,差异在某种程度上是主观的-
对于每个对象仅调用一次的函数,在传递字典和
self
用作字典之间并没有太多实际的区别。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号