你能帮我找出代码中的反模式和问题吗。我似乎不知道这段代码的反模式和解决方案。我已经纠正了一些错误,但我相信还有很多错误:
class Stringchecker():
def __init__(self):
pass
def check_pass(people_text):
result = []
for k in people_text:
if people_text[k] =="pass":
result.append(k)
else:
return result
if __name__== "__main__":
people_text = {'Mia': 'pass', 'Mike': 'fail', 'Jack': 'pass')
sc = StringChecker()
print sc.check_pass(people_text)
错误:
self
作为check_pass
的第一个参数result
(如果没有失败,result
将不会返回;如果失败发生在成功之前,result
将不会拥有所有数据)return result
应该与for k in ...
处于相同的缩进级别反模式:
class
方法的__init__
(只需使用函数)else
分支有一个pass
)-无用的else
分支您的代码有几个语法问题和一些逻辑问题。另外,您没有正确地使用^{} ,仅仅给它一个} 作为
pass
不是一个好的做法。另一件事是使用^{check_pass
方法。我对你的代码做了一些修改:输出:
注:更新了列表理解,并提供了来自JLPeyret的建议
相关问题 更多 >
编程相关推荐