请问如何历遍 Python 类的所有成员?

2016-06-07 21:37:23 +08:00
 YUX
class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
bart = Student('Bart Simpson', 59)
emma = Student('Emma Watosn', 100)

请问如何历遍 Student 的所有成员 bart 和 emma?

1423 次点击
所在节点    问与答
5 条回复
zwzmzd
2016-06-07 21:49:04 +08:00
提个简单思路: filter 对应作用域中的所有对象
htfy96
2016-06-07 21:50:16 +08:00
https://stackoverflow.com/questions/328851/printing-all-instances-of-a-class

1. 加个类成员 instance[], __init__里把 self 弱引用加到数组里
2. 用 gc 模块遍历所有存活对象, 用 isinstance 判断

相对来说 1 更好一点, 但搞出这种需求一般是设计有一定问题
Fallenwood
2016-06-07 21:51:52 +08:00
Fallenwood
2016-06-07 21:58:22 +08:00
看错需求了。。。
搞个数组记录吧。。。
WinterWu
2016-06-08 10:52:36 +08:00
怎么做有很多方法,但是二楼说的很对。这个需求有错误!先要搞清楚目的是什么?比如要管理所有学生,以班级分,那应该有个班级类,内置数组。需求要清楚,抽象关系清晰,就不会提出这种问题了。除非是要 hack ,否则不应该有这种需求。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/284233

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX