Cannot figure out line of code, also not understanding error
davea at davea.name
Thu Feb 20 17:50:10 CET 2014
ApathyBear <nirchernia at gmail.com> 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.  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 x.name 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:
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 x.data or
equivalent if you like.
More information about the Python-list