Python 如何动态命名实例或更改类中所有实例的属性?
我试图使用单个代理来模拟人口增长,但在模型的基本框架方面已经遇到了麻烦 我有一个班级来容纳个人Python 如何动态命名实例或更改类中所有实例的属性?,python,python-3.x,Python,Python 3.x,我试图使用单个代理来模拟人口增长,但在模型的基本框架方面已经遇到了麻烦 我有一个班级来容纳个人 class Individual: """These are individuals""" list = [] def __init__(self, name, sex, dob): self.name = name self.sex = sex self.dob = dob self.list.append(na
class Individual:
"""These are individuals"""
list = []
def __init__(self, name, sex, dob):
self.name = name
self.sex = sex
self.dob = dob
self.list.append(name)
def __str__(self):
return "name is {}, sex is {}, age is {}" .format(self.name, self.sex, curyear - self.dob)
我通过
def birth():
global person
person = Individual((next(name)), randsex(), curyear)
基本的增长循环是
for i in range(totalyears):
curyear = curyear + 1
if curyear - person.dob == 18:
birth()
else:
pass
问题似乎是
if curyear - person.dob == 18:
birth()
只是老化并检查已创建的个人的最后一个实例
print(Individual.list)
显示我的最终人口=开始人口+总年龄/18和print(str(person))
似乎也证实了这一点
我想这是因为我的birth()
函数基本上将每个新实例命名为“person”,所以每当我使用person时,它都会引用最新创建的实例。在我看来,有两种可能性
A) 动态地为每个新实例指定一个唯一的名称,并使用一个列表来引用增长循环中这些实例的每个属性
B) 添加年龄实例属性,并了解如何更改该类所有成员的年龄实例属性
我不知道这两种方法是否可行,也不知道如何做到。我将感谢任何建议和例子 是的,每当你实例化许多你需要单独处理的事情时,使用一个列表!另外,else:pass
是胡说八道,它什么都不做,你也可以完全忽略它。你只有一个全局人<代码>人员
不是一个列表,而是一个参考。为什么不使用人员
列表并将其附加到列表中呢?您需要将对象保存在容器中,就像列表
一样。不要动态地创建一堆变量。