在python中处理断言

在python中处理断言,python,exception-handling,assert,Python,Exception Handling,Assert,我不明白为什么这个代码: x='aaaa' try: self.assertTrue(x==y) except: print (x) 给我这个错误 AssertionError: False is not True 应该由你来处理 print(x) 编辑 原代码为: try: self.assertTrue('aaaa'==self.compare_object_name[1]) except: print ('aaa') @空格\u c0w0y我无法

我不明白为什么这个代码:

x='aaaa'
try: 
    self.assertTrue(x==y)
except: 
    print (x)
给我这个错误

AssertionError: False is not True
应该由你来处理

print(x)
编辑

原代码为:

try:
    self.assertTrue('aaaa'==self.compare_object_name[1])
except:
    print ('aaa')

@空格\u c0w0y我无法提供完整的代码,因为它不是我的代码,而且我没有权限。

您应该包括定义
assertTrue
方法的代码。从您得到的输出来看,我认为它实际上不会抛出异常,而是在内部处理它(因此打印的是错误消息,而不是您的值)

您可以使用Python的内置语句,该语句按预期工作:

x = 'aaaa'
y = 'bbb'

try:
    assert(x == y)
except:
    print (x)
输出:

>>> 
aaaa

您应该包括定义
assertTrue
方法的代码。从您得到的输出来看,我认为它实际上不会抛出异常,而是在内部处理它(因此打印的是错误消息,而不是您的值)

您可以使用Python的内置语句,该语句按预期工作:

x = 'aaaa'
y = 'bbb'

try:
    assert(x == y)
except:
    print (x)
输出:

>>> 
aaaa

这看起来像是一个单元测试?你为什么要抓住这样的断言?还有,这是你的原始代码吗?里面有语法错误,而且缩进很奇怪。请向我们展示复制be行为的实际代码。这看起来像是来自单元测试?你为什么要抓住这样的断言?还有,这是你的原始代码吗?里面有语法错误,而且缩进很奇怪。请向我们展示复制be行为的实际代码。
assert
是一个语句,而不是一个方法。请小心assert语句。。。如果您曾经使用
-O
(或
-OO
)选项编译代码,它们都会消失(通过设计)。请参阅。
assert
是一个语句,而不是一个方法。请小心使用assert语句。。。如果您曾经使用
-O
(或
-OO
)选项编译代码,它们都会消失(通过设计)。看见