草庐IT

assertion

全部标签

python - raise、try 和 assert 之间有什么区别?

我学习Python已经有一段时间了,raise函数和assert是(我意识到它们都会使应用程序崩溃,不像try-except)真的很相似,我看不出你会使用raise或assert而不是try。那么,raise、try、assert有什么区别呢? 最佳答案 statementassert可用于在运行时检查条件,但如果从Python请求优化,将被删除。扩展形式为:assertcondition,message并且等价于:if__debug__:ifnotcondition:raiseAssertionError(message)在哪里_

python - raise、try 和 assert 之间有什么区别?

我学习Python已经有一段时间了,raise函数和assert是(我意识到它们都会使应用程序崩溃,不像try-except)真的很相似,我看不出你会使用raise或assert而不是try。那么,raise、try、assert有什么区别呢? 最佳答案 statementassert可用于在运行时检查条件,但如果从Python请求优化,将被删除。扩展形式为:assertcondition,message并且等价于:if__debug__:ifnotcondition:raiseAssertionError(message)在哪里_

python - "-O"标志用于运行 Python 有什么用?

Python可以在优化模式(python-O)下运行脚本,该模式会关闭调试,删除assert语句,并且IIRC它还删除了文档字符串。但是,我没有看到它使用过。python-O真的使用了吗?如果有,有什么用? 最佳答案 python-O当前执行以下操作:完全忽略断言将特殊的内置名称__debug__设置为False(默认为True)当被称为python-OO从代码中删除文档字符串不知道为什么大家忘了提__debug__问题;也许是因为我是唯一使用它的人:)if__debug__构造在-O下运行时根本不创建字节码,我发现这非常有用。

python - "-O"标志用于运行 Python 有什么用?

Python可以在优化模式(python-O)下运行脚本,该模式会关闭调试,删除assert语句,并且IIRC它还删除了文档字符串。但是,我没有看到它使用过。python-O真的使用了吗?如果有,有什么用? 最佳答案 python-O当前执行以下操作:完全忽略断言将特殊的内置名称__debug__设置为False(默认为True)当被称为python-OO从代码中删除文档字符串不知道为什么大家忘了提__debug__问题;也许是因为我是唯一使用它的人:)if__debug__构造在-O下运行时根本不创建字节码,我发现这非常有用。

Python assert_call_with,有通配符吗?

假设我在python中有一个这样设置的类。fromsomewhereimportsendmailclassMyClass:def__init__(self,**kargs):self.sendmail=kwargs.get("sendmail",sendmail)#ifwecan'tfindit,useimporteddefdefpublish():#lotsofirrelevantcode#andthenself.sendmail(mail_to,mail_from,subject,body,format='html')如你所见,我已经给自己一个选项来参数化我用于self.sendm

Python assert_call_with,有通配符吗?

假设我在python中有一个这样设置的类。fromsomewhereimportsendmailclassMyClass:def__init__(self,**kargs):self.sendmail=kwargs.get("sendmail",sendmail)#ifwecan'tfindit,useimporteddefdefpublish():#lotsofirrelevantcode#andthenself.sendmail(mail_to,mail_from,subject,body,format='html')如你所见,我已经给自己一个选项来参数化我用于self.sendm

python - 为什么 unittest 中的断言使用 TestCase.assertEqual 而不是 assert 关键字?

Python的内置unittest模块使用TestCase.assert*方法进行断言:classFooTest(TestCase):deftest_foo(self):self.assertEqual(1,1)self.assertNotEqual(1,2)self.assertTrue(True)我通常使用测试运行器,例如nose或py.test允许在进行断言时使用内置的assert关键字:assert1==1assert1!=2assertTrueunittest的TestCase.assert*方法的动机是什么?这与使用内置assert关键字断言的优缺点是什么?是否有理由支持u

python - 为什么 unittest 中的断言使用 TestCase.assertEqual 而不是 assert 关键字?

Python的内置unittest模块使用TestCase.assert*方法进行断言:classFooTest(TestCase):deftest_foo(self):self.assertEqual(1,1)self.assertNotEqual(1,2)self.assertTrue(True)我通常使用测试运行器,例如nose或py.test允许在进行断言时使用内置的assert关键字:assert1==1assert1!=2assertTrueunittest的TestCase.assert*方法的动机是什么?这与使用内置assert关键字断言的优缺点是什么?是否有理由支持u

python - 让 Python 的 `assert` 抛出我选择的异常

我可以让assert抛出我选择的异常而不是AssertionError吗?更新:我将解释我的动机:到目前为止,我已经进行了引发我自己的异常的断言式测试;例如,当您创建带有某些参数的Node对象时,它会检查参数是否适合创建节点,如果不适合,则会引发NodeError。但我知道Python有一个跳过断言的-o模式,我希望它可用,因为它可以让我的程序更快。但我仍然希望有自己的异常(exception)。这就是为什么我想在我自己的异常中使用断言。 最佳答案 这会奏效。但这有点疯狂。try:assertFalse,"AMessage"exce

python - 让 Python 的 `assert` 抛出我选择的异常

我可以让assert抛出我选择的异常而不是AssertionError吗?更新:我将解释我的动机:到目前为止,我已经进行了引发我自己的异常的断言式测试;例如,当您创建带有某些参数的Node对象时,它会检查参数是否适合创建节点,如果不适合,则会引发NodeError。但我知道Python有一个跳过断言的-o模式,我希望它可用,因为它可以让我的程序更快。但我仍然希望有自己的异常(exception)。这就是为什么我想在我自己的异常中使用断言。 最佳答案 这会奏效。但这有点疯狂。try:assertFalse,"AMessage"exce