python弱语言引用weakref

弱引用通常用在经常添加数据和修改数据的场景

使用weakref库完成弱引用的定义

1
import weakref

定义一个弱引用的字典

1
players=weakref.WeakKeyDictionary()

定义一个玩家类

  • 值得注意的是,整数类型和字符串类型是不支持做弱引用,因为没有任何意义
1
2
3
4
5
6
7
class Player:
def __init__(self) -> None:
for i in range(1000):
if i not in players:
self.id=i
break
players[self]=self.id

定义一个游戏函数,当中有两个玩家

1
2
3
def game():
p1=Player()
p2=Player()

游戏运行两次

1
2
for _ in range(2):
game()

打印我们定义的弱引用的字典

1
print(dict(players))