pygame中Sprite类__init__中的self.add怎么理解

img


这是源码

img


这是自己测试的结果

关于add目前试验的结论是:
①只有set才能调用add
②set用{}表示,和dict区别是set没有:号,dict需要用:来连接键值对

a={} # 会被识别为dict
b={'x','y'} # 会被识别为set
c={'loc':'bj'} # 会被识别为dict

→元素为空,识别为dict

基于上述测试的结论,就越发不能理解这个__init__的运行机制

def __init__(self,*groups)
# 此处说明创建实例括号里面填写的内容会被汇集到groups
self.__g = {}
# 创建了一个空的dict(根据结论③)
if groups:
# 如果groups中有元素返回True
self.add(*groups)
# 这一步最迷惑,如果用self.__g.add勉强还能理解,虽然会报错,但是直接self.add就有点不能理解,元素最终加到哪里去了

所以我的问题应该是这边的self看不明白

sprite在下面实现了一个自己的add,你没写对应函数自然无法使用add

img