I'm working on a scheme which reduces the interface between classed to a single method and a list messages that the co-operative class knows. I invite all comments and/or critiques/improvements: We could even turn this into an article! - class AnyClass(object):
-
"""Demonstrate massage passing:
-
This is the subordinate class."""
-
def Funct1(self, arg1):
-
print "AnyClass.Funct1 got", arg1
-
self.Send("MESSAGE3", arg1, string1='hello', string2='world')
-
-
def Funct2(self, arg2, arg3):
-
print arg2, arg3
-
-
def Funct3(self, count, **kwargs):
-
"""Must document the names of the kwargs here:
-
Funct3(count, string1, string2)"""
-
print count, kwargs['string1'], kwargs['string2']
-
-
-
# Of cource, the sender and the reciver would typically have different massages
-
DispatchDict = {'MESSAGE1':Funct1, 'MESSAGE2':Funct2, 'MESSAGE3':Funct3}
-
-
def Receive(self, *args, **kwargs):
-
self.DispatchDict[args[0]](self, *args[1:], **kwargs)
-
-
def Connect(self, callback):
-
self.Send = callback
-
return self.Receive
-
-
-
class AnyOtherClass(object):
-
"""Demonstrate massage passing:
-
This is the superior class."""
-
def __init__(self):
-
self.Worker = AnyClass()
-
self.Send = self.Worker.Connect(self.Receive)
-
self.Send('MESSAGE1', 5)
-
-
def Funct1(self, arg1):
-
print arg1
-
-
def Funct2(self, arg2, arg3):
-
print arg2, arg3
-
-
def Funct3(self, count, **kwargs):
-
"""Must document the names of the kwargs here:
-
Funct3(count, string1, string2)"""
-
print count, kwargs['string1'], kwargs['string2']
-
-
-
# Of cource, the sender and the reciver would typically have different massages
-
DispatchDict = {'MESSAGE1':Funct1, 'MESSAGE2':Funct2, 'MESSAGE3':Funct3}
-
-
def Receive(self, *args, **kwargs):
-
self.DispatchDict[args[0]](self, *args[1:], **kwargs)
-
-
test = AnyOtherClass()
-
0 1416 Sign in to post your reply or Sign up for a free account.
Similar topics
by: cold |
last post by:
I'm trying to write an helper class that allows me to serialize objects to a
socket (or a NetworkStream). I know there are plenty of .NET classes that
help me to serialize object to an array of...
|
by: Gvs |
last post by:
Hi,
I'm currently trying to pass messages into a queue. This all works fine,
however, i'm trying to my program to stop sending messages to the queue when
it reaches an upper threshold. At...
|
by: Schorschi |
last post by:
Can someone please point out why I am getting an 87 error? I am sure
it is obvious, but I am new to C# and seem to be having a lot of
stress understanding managed versus unmanaged code when API...
|
by: Adam |
last post by:
Hi,
How do i listen for windows messages in c# on
compact.net? I have a window containing an instantiation
of the HTML viewer control, which is a child of the main
form. As the compact...
|
by: Arsen Vladimirskiy |
last post by:
Hello,
If I have a few simple classes to represent Entities such as Customers and
Orders.
What is the proper way to pass information to the Data Access Layer?
1) Pass the actual ENTITY to...
|
by: Curious |
last post by:
Hi,
I need some technique to communicate by passing messages with different
threads. For my problem shared memory is not applicable.
Can someone give me some help of what there is available...
|
by: Stan |
last post by:
There are two ways to pass structured data to a web service:
xml
===
<Order OrderId="123" OrderAmount="234" />
or class
=====
|
by: Andrew Bullock |
last post by:
Hi,
I have two classes, A and B,
B takes an A as an argument in its constructor:
A a1 = new A();
B b = new B(a1);
|
by: AAaron123 |
last post by:
On a Form I have a RichTextBox.
I do the call for EM_SETEVENTMASK with ENM_REQUESTRESIZE
The user control's WndProc writes to the consol to keep track of any
EN_REQUESTRESIZE messages.
As...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
| |