如何在python中使用assert和==?

时间:2014-04-21 06:41:43

标签: python python-2.7 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导师,但如果我把assert somevariable我得到断言错误。我无法理解如何使用==并断言完成某项任务。

1 个答案:

答案 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创建的特殊变量保留的。