4

Pythonで関数の配列をシャッフルしようとしています。私のコードは次のようになります。

import random

def func1():
    ...

def func2():
    ...

def func3():
    ...

x=[func1,func2,func3]
y=random.shuffle(x)

問題は、配列をシャッフルした後に関数を呼び出す方法がわからないことです!

最後の行の後に「y」を書いても何も起こりません!

ありがとう

4

1 に答える 1

14

まず、random.shuffle()リストをその場でシャッフルします。シャッフルされたリストは返さないので、y = None. そのため、入力しても何もしませんy

各関数を呼び出すには、次のようにループして各関数を呼び出すことができますx

for function in x:
    function() # The parentheses call the function

最後に、関数は実際に SyntaxError を生成します。何もしないようにしたい場合はpass、それらの最後に追加します。pass絶対に何もせず、python が何かを期待する場所に置かれます。


したがって、完全に:

def func1():
    pass

def func2():
    pass

def func3():
    pass

x = [func1, func2, func3]
random.shuffle(x)
for function in x:
    function()
于 2013-09-16T05:06:05.427 に答える