Dinesh wrote: > I've avoided it as long as possible but I've reached a stage where I have to > start using Python objects! The primary reason is that the web framework uses > objects and the second is to eliminate a few globals. Here is example pseudo > code followed by the question (one of many I suspect!): > > class A: > constantA = 9 > def OneOfA: > <do something> > a = <do something else> > > class B: > variableB = "quick brown fox" > def OneOfB: > <do something> > b = <do something more> > c = b * a # the 'a' from def OneOfA in class A > > Question: > 1) how do I access the 'a' from function (method) OneOfA in class A so that > it can be used by functions (methods) in class B?
I wrote the following classes as an example that might be what you want. 1 class A(object): 2 def one_of_a(self): # self is required for a method 3 self.a = 3 4 print self.a 5 6 class B(object): 7 def one_of_b(self, a_obj): 8 b = 10 9 self.c = b * a_obj.a 10 print self.c First of all, note that the method definitions have a "self" argument. This is how the method has access to the object for which they are called. If you look on line 3, I put "self.a" so that the 3 is stored in the "a" field of the object. Since you wanted to access the a field of an A object in your one_of_b method, it will need access to an A object, so I added a parameter that you can use to pass in an A object (line 7). Assuming an A object is passed in, then the a field of it can be accessed as in line 9, "a_obj.a". Here is how I ran the code (using IPython): In [17]: v1 = A() In [18]: v1.one_of_a() 3 In [19]: v2 = B() In [20]: v2.one_of_b(v1) 30 At [17], I create an instance of A and assign it to variable v1. At [18] I call the one_of_a method on my newly created object, which prints out a 3, the value stored in the "a" field of v1 object. At [19], I create an instance of B and assign it to variable v2. At [20], I call the one_of_b method on my new object, passing in the A object assigned to v1. It prints out 30, which is 10 times the value in the "a" field of v1. The class, variable, and method names are pretty abstract and similar, so I hope that doesn't cause undue confusion. It might be easier to understand with a more concrete example. Greg _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor