__contains__, __len__,__reversed__

__contains__():当使用in,not in 对象的时候 调用(not in 是在in完成后再取反,实际上还是in操作)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class A(object): 
    def __init__(self,num): 
        self.num = num 
       
    def __contains__(self, item): 
        '''''
        @summary:当使用in,not in 对象的时候 ,not in 是在in完成后再取反,实际上还是in操作
        ''' 
        print "__contains__:%s is in?"%item 
        if item < self.num and item >= 0
            return True 
        return False 
       
if __name__ == "__main__"
    if 3 in A(10):print "True" 
    else:print False 
    if 3 not in A(10):print "True" 
    else:print False 

__reversed__():当使用reversed函数翻转对象时调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A(object): 
    def __init__(self,num): 
        self.num = num 
       
    def __reversed__(self): 
        '''''
        @summary: 当使用reversed函数翻转对象时调用
        ''' 
        ret = [] 
        for i in range(self.num): 
            ret.append(self.num - i-1
        return ret 
       
if __name__ == "__main__"
    print reversed(A(10)) 

 __len__():当使用len(A)该对象时调用该方法,当没有该方法是会报错,且返回数据不为整数也会报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class A(object): 
    def __init__(self,num): 
        self.num = num 
        self.start_num = -1 
       
    def __len__(self): 
        '''''
        @summary: 当使用len(Test)该对象时调用该方法,当没有该方法是会报错,且返回数据不为整数也会报错
        ''' 
        print "__len__" 
        return self.num - self.start_num - 1 
       
if __name__ == "__main__"
    print len(A(10)) 

 

posted @   总要做些什么  阅读(182)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示