Reputation: 65
I am new to this forum, so I apologize beforehand for any mistakes. I am trying to pass a variable from my python code to tcl script. The way I am doing this is:
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)
The output of this code is:
0
25000
in_port
in_delay
How to assign in_port to 0 and in_delay to 25000? I am not able to understand why it is not able to pass the value of the variable.
Upvotes: 3
Views: 1052
Reputation: 246827
Tcl doesn't use commas to separate arguments, it uses whitespace. Also, you need a $
to reference the value of the variable. Do this:
proc my_proc {in_port in_delay} {
puts $in_port
puts $in_delay
}
I'm not really a python guy, but you probably want
tcl.eval('my_proc {0} {1}'.format(port,delay))
Upvotes: 3