生活随笔
收集整理的這篇文章主要介紹了
python super 变参数问题(五)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這是Python多層繼承的一個特例,祖父,父親,兒子都有 draw 方法,那么經(jīng)過多次繼承后,
- 如何對于不同層次的方法傳遞參數(shù)呢,可以看這篇文章python super 理解(四)
- 如何對于不同層次的方法傳遞參數(shù)呢,那么這個例子展現(xiàn)了一種解法,但是這種做法不夠通用,在下一篇文章我給出更加通用的玩法
def myFun(ff,**kwargs): # print(kwargs)for key, value in kwargs.items():print ("%s == %s" %(key, value))print('#'*12)# Driver code
myFun(ff ='a',first ='Geeks', mid ='for', last='Geeks') # input_dict={'first' :'Geeks', 'mid' :'for', 'last':'Geeks'}
# myFun(**input_dict)
first == Geeks
mid == for
last == Geeks
############
class Root:def draw(self):# the delegation chain stops hereprint('Root Drawing draw ')assert not hasattr(super(), 'draw')class Shape(Root):def __init__(self, shapename, **kwds):self.shapename = shapename# print('Shape class',kwds)super().__init__(**kwds)def draw(self):print('Shape Drawing. Setting shape to:', self.shapename)super().draw()class ColoredShape(Shape):def __init__(self, color, **kwds):self.color = color# print('ColoredShape class',kwds)super().__init__(**kwds)def draw(self):print('ColoredShape Drawing. Setting color to:', self.color)super().draw()cs = ColoredShape(color='blue', shapename='square')
cs.draw()
ColoredShape Drawing. Setting color to: blue
Shape Drawing. Setting shape to: square
Root Drawing draw
總結(jié)
以上是生活随笔為你收集整理的python super 变参数问题(五)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。