Reputation: 313
i have a list of items. i then have a function to find an item in there.
def find(self, runners):
for runners in self._runners:
if runners.name == name:
return runners
so when i type runnersworld.find(peter)
it should bring back a print statement such as "record found or record not found. each record has a runnerid and a runner name. but when i run this function i get a global variable name it not defined. the two fines i have are:
RunnerClass
class Runner(object):
def __init__ (self, runnerid, name):
self._runnerid = runnerid
self._name = name
@property
def runnerid(self):
return self._runnerid
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
def get_fee(self, basicfee, moneyraised):
raise NotImplementedError("AbstractMethod")
def __str__(self):
rep = "Runner: " + self._runnerid + " " + self._name + "\n"
return rep
Club Class
class Club (object):
def __init__(self, clubid, name):
self._clubid = clubid
self._name = name
self._runners = []
@property
def clubid(self):
return self._clubid
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def runners (self):
return self._runners
@runners.setter
def runners(self, runners):
self._runners = runners
def add(self, runners):
if runners not in self._runners:
self._runners.append(runners)
def remove(self, runners):
if runners in self._runners:
self._runners.remove(runners)
def find(self, runners):
for runners in self._runners:
if runners.name == name:
return runners
def __str__(self):
rep = "Club: " + self._clubid + " " + self._name + "\n"
for runner in self._runners:
rep += str(runner)
return rep
i have edited my find function to:
def find(self, name):
for runners in self._runners:
if runners.name == name:
print("Runner found in Records")
else:
print("Runner not found in record")
it seems to work but when i try to run runnersworld.find(peter)
and runners4life.find(peter)
i get:
Runner not found in record
Runner not found in record
Runner not found in record
Runner not found in record
Runner not found in record
Runner not found in record
but there is defininatly a peter in runners4life
Upvotes: 1
Views: 316
Reputation: 4319
In the following piece of code :
def find(self, runners):
for runners in self._runners:
if runners.name == name:
return runners
there's no variable name
defined. You probably mean
def find(self, name):
for runners in self._runners:
if runners.name == name:
return runners
Upvotes: 5