0
実行時に新しいプロセスで実行する関数を決定する方法はありますか? (multiprocessing.Process
によって作成された)ランタイム関数からマルチプロセッシングへのターゲット
は、これは明白なようだ、私はプログラム
enter function to be run = f
を実行したときに、私は2機能
def f():
print("In f")
def g():
print("In g")
func_name = str(input("enter function to be run = "))
multiprocessing.Process(target = func_name, args =()).start()
今これは私にエラーを与えている
TypeError: 'str' object is not callable
を仮定します関数の名前は一致しなければなりませんが、この場合、名前は変数にありますを文字列として返します。
functions = {'f': f, 'g': g}
multiprocess.Process(target=functions.get(func_name), args=()).start()
func_name
がfunctions
に実際にあることを確認する方が良いでしょう:
実際にはできません。私は、コードが書かれる前に、関数がいくつあるのか、その名前は、最初はありません。ユーザーは任意の名前の任意の数の関数を与えることができ、コードを実行するように要求します。そのようなマルチプロセッシングのためのラッパーのような。プロセス。 – Haris
@Haris:代わりに 'globals()。get(func_name)'を使うことができます。 – zondo
マジック。親切な男。 :) どうもありがとう。 – Haris