0

我很难做到这一点。以下作品:

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))

我知道有办法做到这一点。对不起,还是新的。

4

2 回答 2

2

现在player_listall_ports是局部变量。也就是说,它们仅在定义它们的函数中可用。任何在函数之外使用它们的尝试都将失败。

尝试让你的函数返回它们

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)

但是请记住,多次调用它们不会产生累积效应,尽管您似乎只打算调用它们一次。

于 2013-06-21T05:16:16.793 回答
1

请声明您使用的方式all_portsplayer_list。在上面的代码中,它们都是局部变量,你不能在方法之外使用它们。请添加return声明。就像return all_portsand一样return player_list,在需要时添加,使用all_ports = initate_players(num)and all_ports = instance_ports(pl)

于 2013-06-21T05:23:29.810 回答