Ros*_*oss 1 python if-statement list
我有一个项目清单.然后我有一个功能,在那里找到一个项目.
def find(self, runners):
for runners in self._runners:
if runners.name == name:
return runners
Run Code Online (Sandbox Code Playgroud)
因此,当我键入runnersworld.find(peter)它应该带回一个打印语句,如"找到记录或记录未找到.每个记录都有一个runid和一个跑步者名称.但是当我运行这个函数时,我得到一个全局变量名称,它没有定义.两个罚款我有:
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
Run Code Online (Sandbox Code Playgroud)
俱乐部课程
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
Run Code Online (Sandbox Code Playgroud)
我已将我的查找功能编辑为:
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")
Run Code Online (Sandbox Code Playgroud)
它似乎工作,但当我尝试运行runnersworld.find(peter),runners4life.find(peter)我得到:
在记录中找不到跑步者
在记录中找不到跑步者
在记录中找不到跑步者
在记录中找不到跑步者
在记录中找不到跑步者
在记录中找不到跑步者
但是在runners4life中绝对是一个彼得
在下面的代码中:
def find(self, runners):
for runners in self._runners:
if runners.name == name:
return runners
Run Code Online (Sandbox Code Playgroud)
没有name定义变量.你可能意味着
def find(self, name):
for runners in self._runners:
if runners.name == name:
return runners
Run Code Online (Sandbox Code Playgroud)