如何在Python中使用assert和==?
我正在学习Python。我看到一个问题,问怎么修正这个:
def main():
assert ___ == type("Hello World").__name__
assert ___ == isinstance("Hello World", str)
if __name__=="__main__":
main()
我试过:
__some__={}
def main():
assert __some__ == type("Hello World").__name__
assert __some__ == isinstance("Hello World", str)
if __name__=="__main__":
main()
当我运行这个时,我得到了一个 AssertionError
错误:
Traceback (most recent call last):
Line 6, in <module>
main()
Line 3, in main
assert __some__ == type("Hello World").__name__
AssertionError
我发现 assert
是用来指定一个条件的,当这个条件不满足时,就会抛出一个异常。我甚至用了Python Tutor,但如果我写 assert somevariable
,我就会得到一个断言错误。我不太明白怎么用 ==
和 assert 来完成某个任务。
1 个回答
4
你在codepad.org上发布的代码是
__some__={}
def main():
assert __some__ == type("Hello World").__name__
assert __some__ == isinstance("Hello World", str)
if __name__=="__main__":
main()
type("Hello World").__name__
的结果是 'str'
,而 __some__
是 {}
,所以它们当然不匹配。同样,isinstance("Hello World", str)
的结果是 True
,所以也不匹配。你的条件都是假的,所以断言失败,抛出了AssertionError。如果你换成 assert 'str' == type("Hello World").__name__
,就不会有异常,因为这个比较是对的。
另外,你不应该用像 __foo__
这样的名字来声明自己的变量。按照惯例,这些名字是保留给Python创建的特殊变量的。