Python actually gives me hope for VFP and the "open source" movement. If Python can be such a force when it is ruled by one guy, VFP has a chance.
John -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ed Leafe Sent: Wednesday, September 27, 2006 9:06 AM To: ProFox Email List Subject: Re: [NF] Python - Thinking Differently On Sep 27, 2006, at 9:03 AM, Alan Bourke wrote: >> Everything, and I mean everything, in Python is an object. > > Basic types like int aren't, surely? Surely they are! Strings, ints, booleans - all objects. A class definition? That's an object, too. A function or an object's method? Objects, too. This is incredibly useful once you get your brain around it. Let's say that you have an object, and want to tell another object to do something, and when it's done, to let the original object know that it's complete. This is commonly called a 'callback'. In Python, you would pass a reference to the callback function directly to the target, and it would then invoke that function reference. The code would look something like this (keep in mind that 'def' is equivalent to Fox's 'PROC'): class MainObject(object): def initiateAction(self): # Assume that 'target' is a reference to the TargetObject # class already established self.target.doSomeAction(self.notification) def notification(self, result): # This is the callback function print "Process complete, result:", result class TargetObject(object): def doSomeAction(self, callback): # Run some length process, and then pass the # result to the callback longProcess() anotherLongProcess() ret = finalLongProcess() # Here's the callback callback(ret) Note that in the last line, 'callback' is being called as a function, even though it was passed as a parameter. Note that the name of the callback method doesn't matter, nor does the object to which it belongs, if any. This is just the tip of the iceberg. Once you get used to thinking along these lines, it makes designing complex interactions much simpler, especially for asynchronous events. It also makes class factories ridiculously easy to write; since a class definition is an object, there is nothing to stop you from subclassing from it on the fly - after all, you're just creating a new class object! -- Ed Leafe -- http://leafe.com -- http://dabodev.com [excessive quoting removed by server] _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/profox OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech ** All postings, unless explicitly stated otherwise, are the opinions of the author, and do not constitute legal or medical advice. This statement is added to the messages for those lawyers who are too stupid to see the obvious.

