首页 > 其他 > 详细

__boot__ __repr__ __str__ __bytes__

时间:2020-10-05 22:15:06      阅读:37      评论:0      收藏:0      [点我收藏+]

 

__bool__

内建函数bool(),或者对象放在逻辑表达式的位置,调用这个函数返回布尔值,没有定义__bool__(),就找__len__()返回长度,非0为真,如果__len__()也没有定义,所有实例都返回真

 

class B:pass
print(bool(B()))

class C:
    def __bool__(self):
        return False
print(bool(C))
print(bool(C()))

class D:
    def __len__(self):
        return 0
print(bool(D()))

 

__repr__

内建函数repre()对一个对象获取字符串表达式,如果一个类定义了__repr__(),但没有定义__str__,那么在请求该类的实例的‘非正式‘字符串表示时,也将调用__repr__()

__str__

str()函数,内建函数format,print()调用,需要返回字符串表达式

__bytes__ bytes(),返回一个对象的bytes表达式,即返回bytes对象

class Niz:
    def __repr__(self):
        return str(‘repr‘)
    def __str__(self):
        return str(‘str‘)
    def __bytes__(self):
        return b‘zcx‘
print(Niz())
b=[Niz(),Niz()]
print(b)
p=str(b) # 对list和Niz()调用str的区别
print(p)
print(*b)
print(list(map(str,b)))
print(bytes(Niz()))
print(Niz().__bytes__())

  

class B:
    def __init__(self):
        self.a=a
        self.b="b"
    def __repr__(self):
        return repr: {}, {}.format(self.a,self.b)
    def __str__(self):
        return str: {}, {}.format(self.a,self.b)

print(B()) # print调用__str__
print([B()]) # []调用__str__,但list内部调用__repr__
print(([str(B())])) # str()调用__str__

 

__boot__ __repr__ __str__ __bytes__

原文:https://www.cnblogs.com/dissipate/p/13770549.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!