Cannot figure out line of code, also not understanding error

Dave Angel davea at
Thu Feb 20 17:50:10 CET 2014

 ApathyBear <nirchernia at> Wrote in message:
> On Thursday, February 20, 2014 12:54:54 AM UTC-8, Chris Angelico wrote:
>>Calling a class will create a new instance of it. [1] What you do with 
>>it afterwards is separate. 
> Okay. So what you are saying is that return(Athlete(temp1.pop(0),temp1.pop(0), temp1)) IS in fact creating an instance of Athlete. My problem with this is that there really is no declaration of 'self' for this instance.
> Usually when I do something like this.
> x = Athlete("Henry", "11-15-90", [1,2,3])
> I can refer to things of this instance by executing or whatever other attributes the class defined. 
> If I create an instance with no 'self' how does this make any sense? How would I get an attribute for the our instance above?

The code you're describing is inside a function:

def get_coach_data(filename):
 		 with open(filename) as f:
 			data = f.readline()
 		temp1 = data.strip().split(',')
 		return Athlete(temp1.pop(0),temp1.pop(0), temp1)

So the caller might be doing something like

x = get_coach_data ("myfile.txt")

The return statement you're asking about returns a new instance of
 Athlete, which gets assigned to x.  Then you may try or
 equivalent if you like. 


More information about the Python-list mailing list