python 函数变量继承_Python:子类可以重载继承的方法吗?

重写方法原则上不必具有彼此相同的参数,但它们必须具有与它们一起调用的相同形式参数.所以,因为任何处理程序都可以通过get来调用它,所以它们必须是相同的.就此而言,重写的一点是调用者不知道对象的确切类,因此如果它们都不具有相同的参数,通常调用者将不知道要传递什么.因此,我认为,使用不同参数的覆盖将是一种不同寻常的诡计.

如果您更改了它的调用,则调用它然后是,您必须更改要匹配的函数.这与继承无关,它是Python函数的工作方式.

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

class Detail(BaseHandler):

def body(self, **kwargs):

print kwargs['CSIN']

class MainPage(BaseHandler):

def body(self, **kwargs): # can ignore kwargs

class Cart(BaseHandler):

def body(self, **kwargs): # can ignore kwargs

class 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作为字典之间并没有很多实际区别.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值