gpt4 book ai didi

python - 委托(delegate)在 python

转载 作者:太空狗 更新时间:2023-10-29 17:16:46 25 4
gpt4 key购买 nike

我已经实现了这个简短的示例来尝试演示一个简单的委托(delegate)模式。我的问题是。这看起来像我对授权的理解吗?

class Handler:
def __init__(self, parent = None):
self.parent = parent
def Handle(self, event):
handler = 'Handle_' +event
if hasattr(self, handler):
func = getattr(self, handler)
func()
elif self.parent:
self.parent.Handle(event)

class Geo():
def __init__(self, h):
self.handler = h

def Handle(self, event):
func = getattr(self.handler, 'Handle')
func(event)

class Steve():
def __init__(self, h):
self.handler = h

def Handle(self, event):
func = getattr(self.handler, 'Handle')
func(event)

class Andy():
def Handle(self, event):
print 'Andy is handling %s' %(event)

if __name__ == '__main__':
a = Andy()
s = Steve(a)
g = Geo(s)
g.Handle('lab on fire')

最佳答案

一个 Python 提示:你不需要说:

func = getattr(self.handler, 'Handle')
func(event)

就说:

self.handler.Handle(event)

我不确定您对 Handler 类做了什么,您的示例中没有使用它。

并且在 Python 中,具有大写名称的方法非常非常不常见,通常是移植一些具有这样名称的现有 API 的结果。

关于python - 委托(delegate)在 python ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3643538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com