【发布时间】:2018-11-25 01:16:21
【问题描述】:
我是 python 奇妙世界的新生,目前我正在努力解决这个问题...... 这是我编码的一个例子:
class League():
def __init__(self, teams=[]):
self.teams = teams
def initLeague(self):
for a in range(2):
self.teams.append(Team())
self.teams[a].name = "Team" + str(a)
for b in range(3):
self.teams[a].players.append(Player())
self.teams[a].players[b].name = "Name-" + str(a) + "-" + str(b)
def printLeague(self):
for team in self.teams:
print(team.name)
for player in team.players:
print(player.name)
class Team():
def __init__(self, name=None, players=[]):
self.name = name
self.players = players
class Player():
def __init__(self, name=None):
self.name = name
nba = League()
nba.initLeague()
nba.printLeague()
输出如下:
Team0
Name-1-0
Name-1-1
Name-1-2
None
None
None
Team1
Name-1-0
Name-1-1
Name-1-2
None
None
None
[Finished in 0.051s]
所以我想知道这些 None 来自哪里?我注意到它们取决于范围(n)......就像'for a'循环在'for b'循环内重复。 另一个问题是输出的第一部分应该是:
Team0
Name-0-0
Name-0-1
Name-0-2
...
有人可以帮我吗?谢谢!
【问题讨论】:
-
问题在于
Team构造函数中的players=[]。见stackoverflow.com/questions/43255481/…
标签: python python-3.x list for-loop nested-loops