将Python脚本中的变量传递给tcl shell

时间:2015-12-22 19:31:42

标签: python tcl

我是这个论坛的新手,所以我事先为任何错误道歉。我试图将我的python代码中的变量传递给tcl脚本。我这样做的方式是:

import os
import Tkinter
from Tkinter import *

def set_impairments(port,delay):

    port=int(port)
    delay=int(delay)
    tcl = Tcl()
    tcl.eval("""
    proc my_proc {in_port,in_delay} {

    puts in_port
    puts in_delay
    }
    """)
    print port
    print delay

    tcl.eval('my_proc port,delay')

set_impairments(0,25000)

此代码的输出为:

0

25000

in_port

in_delay

如何将in_port指定为0,将in_delay指定为25000?我无法理解为什么它无法传递变量的值。

1 个答案:

答案 0 :(得分:3)

Tcl不使用逗号分隔参数,它使用空格。此外,您需要$来引用变量的值。这样做:

proc my_proc {in_port in_delay} {
    puts $in_port
    puts $in_delay
}

我不是一个蟒蛇人,但你可能想要

tcl.eval('my_proc {0} {1}'.format(port,delay))