我正在尝试学习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导师,但如果我把assert somevariable
我得到断言错误。我无法理解如何使用==
并断言完成某项任务。
答案 0 :(得分: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
,因此它也不匹配。您的条件为false,因此断言失败并抛出AssertionError。另一方面,如果您尝试assert 'str' == type("Hello World").__name__
,则不会因为该比较为真而没有例外。
此外,您不应使用__foo__
之类的名称声明自己的变量。按照惯例,这些是为Python创建的特殊变量保留的。