python super 变参数问题(六)
生活随笔
收集整理的這篇文章主要介紹了
python super 变参数问题(六)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
參考鏈接
這是Python多層繼承的一個(gè)特例,祖父,父親,兒子都有 draw 方法,那么經(jīng)過多次繼承后,如何用一種通用的方法給不同層次的方法傳遞參數(shù),特別是變長的,不定長度的參數(shù)。
class Root:def draw(self,**kwds):# the delegation chain stops hereprint('Root Drawing draw ')assert not hasattr(super(), 'draw')class Shape(Root):def __init__(self, **kwds):self.shapename = kwds['shapename']# print('Shape class',kwds)# super().__init__(**kwds)def draw(self):print('Drawing. Setting shape to:', self.shapename)super().draw()class ColoredShape(Shape):def __init__(self, **kwds):self.color = kwds['color']# print('ColoredShape class',kwds)super().__init__(**kwds)def draw(self):print('Drawing. Setting color to:', self.color)super().draw()input_kwds={'color':'blue', 'shapename':'square'} cs = ColoredShape(**input_kwds) cs.draw() Drawing. Setting color to: blue Drawing. Setting shape to: square Root Drawing draw總結(jié)
以上是生活随笔為你收集整理的python super 变参数问题(六)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python super 变参数问题(五
- 下一篇: keras 自定义层 2