gpt4 book ai didi

Python - 重置同一类的所有实例的值

转载 作者:行者123 更新时间:2023-12-01 08:28:28 24 4
gpt4 key购买 nike

在我正在编码的 Ren'Py 游戏中,我正在尝试优化我的代码,但我一直在寻找一种方法来为同一类的所有实例重置相同的值。

这是我的代码:

init python:
class Girl():
def __init__(self,name,age):
self.name = name
self.age = age
self.place = "Nowhere"
self.appear = False

Bree = Girl("Bree",26)
Sasha = Girl("Sasha",27)

label reset_appear():
Bree.appear = False
Sasha.appear = False

目前我只有该类的几个实例,但我计划添加大约 50 个以上的实例,并且我想在继续之前解决这个问题。

我想做这样的事情(仍在类里面):

def reset_appear(self):
self.appear = False

但是您仍然需要为每个实例调用它。我也在类之外想到了相同的函数,但我不知道如何编码。

最佳答案

您可以使用类属性来存储所有实例和类方法迭代所有实例:

class Girl:
_instances = []
def __init__(self, name, age):
self.name = name
self.age = age
self.place = "Nowhere"
self.appear = False
self._instances.append(self)

@classmethod
def reset_appear(cls):
for instance in cls._instances:
instance.appear = False

def __repr__(self):
# added for sake of example
return '{} {}'.format(self.name, self.appear)


Bree = Girl("Bree", 26)
Bree.appear = True
Sasha = Girl("Sasha", 27)
Girl.reset_appear()
print(Girl._instances)
# [Bree False, Sasha False]

关于Python - 重置同一类的所有实例的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54063882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com