I am trying to associate a competitor with the race that they have competed in, how would I do the show() function through inheriting the event class? I'm still wrapping my head around inheritance so I apologise if this question is obvious..
import sqlite3
print "hello"
class competitor(object):
def __init__(self, name, dob, number, events):
self.name = name
self.dob = dob
self.number = number ##this needs to check db for existing
self.events = events
def listEvents(self):
for all in self.events:
self.show()
class event(competitor):
def __init__(self, name, distance, date, time):
self.name = name
self.distance = distance #meters
self.date = date # [dd,mm,yyyy]
self.time = time # [d,h,m,s]
def printDate(self):
date = str(self.date[0]) + "/" + str(self.date[1]) + "/" + str(self.date[2])
##print date
return date
def printTime(self):
if (self.time[0] > 0):
time = str(self.time[0]) + "." + str(self.time[1]) + ":" + str(self.time[2]) + "." + str(self.time[3])
return time
else:
time = str(self.time[1]) + ":" + str(self.time[2]) + "." + str(self.time[3])
return time
def getKmPace(self):
time_s = self.time[0]*3600*24 + self.time[1]*3600 + self.time[2]*60 + self.time[3]
time_m = time_s/60.0
pace = time_m/(self.distance/1000.0)
return pace
def show(self):
print "Event: ", self.name, " Date: ", self.printDate()
print "Distance: ",self.distance/1000.0,"KM, Time: ", self.printTime()
print "Pace per 1 KM: ", self.getKmPace(), " minutes."
kdl = event("20KM",20000,[26,4,2014],[0,1,27,36])
kdl_bad = event("20KM",20000,[26,4,2013],[0,2,35,37])
kdl.show()
richard = competitor("Richard", 1993, 1, [kdl,kdl_bad])
richard.listEvents()
eventclass, which inherits from thecompetitorclass. (This seems like on odd inheritance relationship to me, since saying "an event is a competitor" doesn't really make logical sense). You also have a function calledshow, but it's not a part of either of those classes, at least according to the indentation in your pasted code. Is that just a copy/paste error? ShouldshowandgetkmPaceactually be part of the event class?getKmPace(self)andshow()functions are outside of the event class?