模拟类的定义,理解类中的内置方法,实质还是调用对象中的方法

#根据模拟list类的定义,分析类中的内置方法,实质还是调用对象中的方法
class list1():                 
    def __init__(self):    #构造函数,构造一个list是该函数自动调用,初始化
        pass
    
    def __del__(self):     #析构函数,当用del函数产出list对象时,该函数会自动调用,删除对象
        pass
    
    def __len__(self):      #长度,当用len(list1object)时,该函数会自动调用,返回对象长度
        return 100
    
    def __bool__(self):   #bool函数,当用bool(self)时,该函数会自动调用,会自动判定True还是False,并购返回
        return True


#而对于自定义的类,不能直接使用len(object)、bool(object),因为无法判断
#此使可以自定义这些函数,以实现相关功能
        
class Student():
    def __len__(self):        #若不定义__len__,则len(Student())会报错
        return False            #只能返回int 或True/False
    def __bool__(self):
        return True
    
print(bool(Student()))           
print(len(Student()))   #输出0

class Student1():
    def __len__(self):
        print('len methond is called')
        return 5            #只能返回int
#    def __bool__(self):
 #       return True

#如果没有__bool__,会自动调用__len__函数
print(bool(Student1()))   #True 因为长度为8

class Student2():
   pass

print(bool(Student2()))     #没定义len,bool默认为true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值