我在做这件事时遇到了麻烦。以下作品:
def initiate_players(num_players):
player_list = []
for i in range(num_players):
player_list.append(Player("None"))
但是一旦我尝试在其中添加变量,我什么也得不到:
def instance_ports(port_list):
all_ports = []
for i in port_list:
all_ports.append(Port(i))
我知道有办法做到这一点。对不起,还是新的。
答案 0 :(得分:2)
现在player_list
和all_ports
是局部变量。也就是说,它们仅在定义它们的函数内可用。任何在函数之外使用它们的尝试都将失败。
尝试使用您的功能return
def initiate_players(num_players):
player_list = []
for i in range(num_players):
player_list.append(Player("None"))
return player_list
和
def instance_ports(port_list):
all_ports = []
for i in port_list:
all_ports.append(Port(i))
return all_ports
现在您可以从初始化的任何地方调用它们,如:
num = 5
port_list = [1,3,5,7]
player_list = initiate_players(num)
port_list = instance_ports(ports)
请记住,多次调用这些不会产生累积效应,但看起来你只打算调用它们一次。
答案 1 :(得分:1)
请声明您使用all_ports
和player_list
的方式。在上面的代码中,它们都是局部变量,你不能在方法之外使用它们。请添加return
声明。与return all_ports
和return player_list
一样,在需要时添加,使用all_ports = initate_players(num)
和all_ports = instance_ports(pl)
。