将变量从 Python 脚本传递到 tcl shell
Passing a Variable from Python script to tcl shell
我是这个论坛的新手,所以对于任何错误,我深表歉意。我正在尝试将一个变量从我的 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?我不明白为什么它不能传递变量的值。
Tcl 不使用逗号分隔参数,而是使用空格。此外,您需要一个 $
来引用变量的值。这样做:
proc my_proc {in_port in_delay} {
puts $in_port
puts $in_delay
}
我不是一个真正的 python 人,但你可能想要
tcl.eval('my_proc {0} {1}'.format(port,delay))
我是这个论坛的新手,所以对于任何错误,我深表歉意。我正在尝试将一个变量从我的 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?我不明白为什么它不能传递变量的值。
Tcl 不使用逗号分隔参数,而是使用空格。此外,您需要一个 $
来引用变量的值。这样做:
proc my_proc {in_port in_delay} {
puts $in_port
puts $in_delay
}
我不是一个真正的 python 人,但你可能想要
tcl.eval('my_proc {0} {1}'.format(port,delay))