python - 循环 Python 类中的对象实例
问题描述
你好只是好奇为什么第二个实例已经获得了在第一个实例创建中添加的类别。我该如何解决?
class Game_record:
category = []
def __init__(self,name):
self.name = name
def add_category(self, cat):
self.category.append(cat)
def reset_cat(self):
self.category = []
def ret_cat(self):
return self.category
game = ["a","b"]
for each in game:
g = Game_record( each )
g.add_category("kol")
g.add_category("bol")
print(g.ret_cat())
g.reset_cat()
print(g.ret_cat())
输出
['kol', 'bol']
[]
['kol', 'bol', 'kol', 'bol']
[]
解决方案
要修复它,请在 中声明category
,__init__()
例如:
class Game_record:
def __init__(self,name):
self.name = name
self.category = []
...
您观察到这种行为的原因是,如果您category
在类之后立即声明,它将成为类级别的属性,而不是对象级别的属性。
推荐阅读
- batch-file - 将多个 Excel 文件转换为 CSV 文件的批处理脚本
- mysql - 查询以从新闻提要中获取评论
- reactjs - 在 Reactjs 中隐藏 Materialise ProgressBar - Reactjs
- mysql - 计数函数不通过mysql查询返回组中空值的0计数
- python - 导入 blpapi 包会出现 SyntaxError?
- docusignapi - DocuSign RESTAPI 同意状态
- c# - UWP 的 HID 库崩溃
- sqlite - SQLite 的“数据库已锁定”
- powershell - 在 Powershell 中,是否有一种一致的方法可以使用 $webRequest 获取下载的文件名
- javascript - 无法堆叠某些值