如何解决在python中创建一个类列表,其中包含一个类列表
我正在尝试创建3个不同的团队,每个团队中有3个不同的球员。但是现在,每个团队中的所有球员都是相同的。下面是我的代码。如果有人有解决方案,那就太好了。
class player():
name=''
class team():
name=''
players=[]
teams=[]
for i in range (3):
teams.append(team())
teams[i].name=str(i)
for j in range(3):
teams[i].players.append(player())
teams[i].players[j].name='P'+str(i)+str(j)
解决方法
您不能仅将一个值分配给根定义中的类的属性。这将为该类的所有实例设置属性。使用构造函数(__init__()
方法)为属性分配值,然后更改它们:
class player():
def __init__(self):
self.name=''
class team():
def __init__(self):
self.name=''
self.players=[]
通过这种方式,每个球员和每个团队都有自己的name
属性,每个球队都有自己的球员列表。
您还可以在__init__()
方法中接受参数,以直接命名球队和球员:
class player():
def __init__(self,playername=''):
self.name=playername
p = player("Jim")
这将启动已经将.name
属性设置为“吉姆”的玩家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。