【发布时间】:2021-11-18 10:22:51
【问题描述】:
这个问题专门针对编码约定。我知道在这种情况下使用 if 或 elif 会产生相同的结果。只是想知道构造这个函数的“正确”方式是什么:
如果是连续的:
def can_take(self, selectedCourse):
if selectedCourse.hasPassed():
return False
if selectedCourse.getPrereqs() != 'none':
for prereq in selectedCourse.getPrereqs():
if not self.courses[prereq].hasPassed():
return False
return True
使用 elif:
def can_take(self, selectedCourse):
if selectedCourse.hasPassed():
return False
elif selectedCourse.getPrereqs() != 'none':
for prereq in selectedCourse.getPrereqs():
if not self.courses[prereq].hasPassed():
return False
return True
【问题讨论】:
-
你想触发两个 if 语句下的两个代码吗?那么只有当你不想触发两个 if 语句时才可以使用,然后使用 elif
-
@GhostOps 你不能那样做;如果第一个为 True,则函数立即返回。作为个人喜好,我会使用两个
if语句。 -
顺便说一句,如果
getPrereqs()返回一个空列表而不是none如果没有先决条件,则此代码可以更简单。 -
@chepner 我希望是这样。不幸的是,我只能修改这个项目中的一些模块。所以我必须使用 'none' 而不是 [] 大声笑
标签: python function for-loop object if-statement