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_list、およびall_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)

ただし、これらを複数回呼び出しても累積的な効果はありませんが、1 回だけ呼び出す予定のようです。

于 2013-06-21T05:16:16.793 に答える
1

all_portsと を使用した方法を宣言してくださいplayer_list。上記のコードでは、どちらもローカル変数であるため、メソッドの外では使用できません。return声明を追加してください。と のようreturn all_portsreturn player_list、必要に応じて追加して、 と を使用all_ports = initate_players(num)all_ports = instance_ports(pl)ます。

于 2013-06-21T05:23:29.810 に答える