Thanks for the help and comments, I think my questions have been answered, I will know if I understand when I try to implement them. The Match algorithm. algorithm is described in the link below. The Applicant and School rankings will be (Attributes ?) of the Applicant and School class, and I simulate this ranking process by considering Applicants and Schools attributes, but basically similar qualities get mutually ranked. (I go go on if someone is interested but I thought it best to keep the discution on what I am trying to learn about classes)
http://www.nrmp.org/res_match/about_res/algorithms.html Thanks Again Vincent Davis On Tue, Jun 9, 2009 at 1:12 AM, spir<denis.s...@free.fr> wrote: > Le Mon, 8 Jun 2009 17:31:23 -0600, > Vincent Davis <vinc...@vincentdavis.net> s'exprima ainsi: > >> Accidentally sent I have added the rest >> (by the way I refrain from using the terms attribute, method,.... as I >> will likely miss use them) >> >> > I am reading several tutorials about classes and trying to figure out >> > how to apply it to my project. I have a working program that basically >> > matches up applicants and schools. Schools and applicants have and >> > "true" quality and an "observed" quality. Then there is an algorithm >> > that matches them up. Right now I do this all with lists which works >> > ok but I would like to try using classes. > >> > Questions >> > 1, does it make seens to have a applicant and a schools class (based >> > on this brief explanation) > > Based on your explanations, I don't really understand the problem you're > trying to solve, nore the algorithm. Still, probably it makes sense to use > Applicant and School classes for the simple reason these notions in your > program represent "objects": there are single, identified, things ; as > opposed to "values" (in the ordinary sense of the term) that represent > qualities or information such as color, position, number, or "true" and > "observed" above. > (By the way, don't use 'true', it's too misleading. Maybe 'truth' instead.) > > This notion of object identity would allow you, for instance, to match an > applicant to a school by letting the applicant's attribute 'matched_school' > directly point to a school itself, instead of a number that indirectly > represents the school. > > Also, you've got a collection of schools and applicants, which probably means > they will be stored in a set or a list. Once you have a type for them, it's > easier to safely manipulate them in a unified manner. Even if they have only > one single data attribute, I would do it: this also brings a centralised > place to expose the object type's structure and behaviour. > >> > 2, is it possible to have a class for the algorithm that will modify >> > values in the applicant and schools class >> for example applicant.matched = 4 and school.matched = 343 meaning >> applicant 343 is matched to school 4 > > No, if I understand what you mean. You won't have a separate "class" only to > store actions (python is not java), but instead you should precisely > attribute these as methods to the Applicant or School types. > >> 3, is I have a value set in a class applicant.foo = 5 and I what to >> use a (method?) in the class to change this, what is the right way to >> do this? > > Below an example: > > ==================== > class Point(object): > def __init__(self, x=0,y=0): > self.x = x > self.y = y > def move(self, dx,dy): > print self, > self.x += dx > self.y += dy > print "--> %s" % self > def __str__(self): > return "Point (%s,%s)" % (self.x,self.y) > > p0 = Point() ; print p0 > p = Point(9,8) ; print p > p.move(-11,11) > ==================== > ==> > ==================== > Point (0,0) > Point (9,8) > Point (9,8) --> Point (-2,19) > ==================== > > Denis > ------ > la vita e estrany > _______________________________________________ > Tutor maillist - tu...@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor