是否可以将True的__repr__更改为False?

时间:2016-05-25 13:15:54

标签: python python-3.x repr

我很好奇如何更改“True”以显示“False”结果,是否可能?

<td *ngFor="let tableHeaderItem of gridHeaderData" 
    [hidden]="tableHeaderItem.hidden">

只有那些原始想法出现在我的脑海中

2 个答案:

答案 0 :(得分:1)

如果您尝试将__str____repr__设置为其他功能,则会引发错误。

示例代码:

def return_false():
    return False

True.__str__ = return_false

print(True.__str__())

这会抛出错误

AttributeError: 'bool' object attribute '__str__' is read-only

答案 1 :(得分:0)

在Python 3.X中?我不这么认为,您无法分配关键字True__str____repr__方法是只读的。但是,在Python 2中,您可以在给定的范围内执行此操作。

class FakeTrue(int):
    def __new__(cls):
        return super(FakeTrue, cls).__new__(cls, 1)

    def __str__(self):
        return 'False'

    def __repr__(self):
        return 'False'

True = FakeTrue()

print True # False
print type(True) # <class '__main__.FakeTrue'>

print 1 == 1 # True
print type(1 == 1) # <type 'bool'>

请注意,int.__eq__仍会返回单身True并且未被覆盖。