python-类对象的遍历操作

 

视频教程 https://study.163.com/course/courseLearn.htm?courseId=1005985001#/learn/video?lessonId=1053351122&courseId=1005985001

 

复制代码
#类对象的遍历
#方式一:
class Person:
    def __init__(self):
        self.age = 0

    def __getitem__(self, item):
        self.age=self.age+1
        if self.age >= 10:
            raise StopIteration('停止遍历')  #抛出异常

        return self.age

d=Person()
for i in d:#d 每次执行__getitem__获取它的返回值,遇到异常结束遍历
    print(i)

print('还在执行吗')
复制代码

 

 

复制代码
#类对象的遍历
#方式二:
class Person:
    def __init__(self):
        self.age = 0

    def __getitem__(self, item):
        print('__getitem__函数')
        self.age=self.age+1
        if self.age >= 10:
            raise StopIteration('停止遍历')  #抛出异常
        return self.age
    def __iter__(self):
        print('__iter__函数')
        return iter([10,20,30,40,50])


d=Person()
for i in d:#执行__iter__函数获取它的返回值,返回值类型:迭代器
    #__iter__函数不存在就执行__getitem__函数,__iter__函数要是存在就执行__iter__函数
    print(i)

print('还在执行吗')
复制代码

 

 

 

 

 

天子骄龙

posted @   天子骄龙  阅读(8599)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示