2017-07-20 37 views
0

私は2つの機能を持つpythonファイルsample.pyを持っています。だからここでは、特定のPython関数をtclスクリプトから呼び出したいと思っています。また、そのPython関数に引数を渡したいと思っています。あなたのアイデアを共有してください。それが可能かどうかは分かりません。あなたの答えは私たちのためにもっと役立つでしょう。引数を渡してTCLスクリプトからpython関数を呼び出す方法は?

sample.py

def f1(a,b,c): 
    x = a + b + c 
    retun x 

def f2(a,b): 
    x = a + b 
    return x 
+0

複数のプロセスまたは1つのプロセスを含むソリューションが必要ですか? –

答えて

2

あなたは、Pythonインタプリタを起動するサンプルスクリプトを読んで、関数を呼び出し、その結果を印刷する必要がありますように見えます。複素数のに渡される引用であるため

package require tclpython 

set a 3 
set b 5 

# Make a Python system within this process 
set py [python::interp new] 

# Run some code that doesn't return anything 
$py exec {import sample} 

# Run some code that does return something; note that we substitute a and b 
# *before* sending to Python 
set result [$py eval "sample.f2($a,$b)"] 
puts "result = $result" 

# Dispose of the interpreter now that we're done 
python::interp delete $py 

注意すべき主なもの:あなたはインプロセス評価を行うことができ、tclpython

$ tclsh 
% set a 3 
3 
% set b 5 
5 
% set result [exec python -c "import sample; print sample.f2($a,$b)"] 
8 
1

:Tclはその後、印刷出力をキャプチャすることができますあなたが評価を使用しているので、Pythonコード。数字にとっては些細なことであり、文字列を引用して注意する必要があります。

関連する問題