با سلام خدمت تمامی دوستان و برنامه نویسان عزیز

یک سوال برام پیش اومده من سعی کردم توی زبان پایتون شبیه به C#‎ رویداد ایجاد و فراخوانی کنم اما متوجه شدم ساختار این موضوع کاملا متفاوته و موفق شدم داخل یک کلاس این عمل انجام بدم اما مشکل اینجاست که زمانی که می خوام از یک کلاس دیگه رویداد فراخوانی کنم امکان پذیر نبود
از شما که بروی زبان پایتون تسلط خوبی دارید لطفا راهنمایی کنید ممنونم
قطعه کدی که دارم ضمیمه میکنم


class Event(object):

def __init__(self):
self.handlers = []

def add(self, handler):
self.handlers.append(handler)
return self

def remove(self, handler):
self.handlers.remove(handler)
return self

def fire(self, sender, earg=None):
for handler in self.handlers:
handler(sender, earg)

__iadd__ = add
__isub__ = remove
__call__ = fire
class Publisher(object):

def __init__(self):
# Set event object
self.evt_foo = Event()

def foo(self,bg):
# Call event object with self as a sender
self.evt_foo(self,bg)


و توسط کد زیر فراخوانی می کنم

from Test2 import Eventfrom Test2 import Publisher
# Event handler may be a function or a instance method etc.
# Every handler must accept two arguments; a sender and an event-specific
# parameter.
def handle_foo(sender, earg):
print (earg)


if __name__ == '__main__':
pub = Publisher()
# Add event handler
pub.evt_foo += handle_foo
pub.foo("salam")


حالا سوال اینجات چطور رویداد توی کد اول فراخوانی کنم و نتیجه توی کد دوم ببینم منظورم چیزی شبیه Event Rise در C#‎ و VB.Net