如何使用Python调用TCL过程

2024-04-23 18:20:22 发布

您现在位置:Python中文网/ 问答频道 /正文

使用下面的代码我可以调用Proc.tcl文件中的所有过程,但是我想单独调用sum或sub这样的过程,请让我知道调用它的任何其他可能性

我的proc文件程序

 puts "hello"
    proc sum {a b} {

     set c [expr $a + $b]
     puts "Addition: $c "
    }




  proc sub {a b} {

     set c [expr $a - $b]
     puts "Substraction: $c "
    }

我的主文件程序

 import Tkinter
    import os
    r=Tkinter.Tk()
    r.tk.eval('source proc.tcl')

Tags: 文件代码import程序hellotkinter过程proc
3条回答

我不知道tcl,但这看起来是合乎逻辑的:

import tkinter
r=tkinter.Tk()
r.tk.eval('source proc.tcl')
r.tk.eval('sum 1 2')
r.tk.eval('sub 1 2')

>>> hello
>>> Addition: 3 
>>> Substraction: -1

而不是r.tk.eval('source proc.tcl')

尝试使用os.system('source proc.tcl') 和导入操作系统

继续你现在的样子:

>>> import Tkinter
>>> r = Tkinter.Tk()
>>> r.tk.eval('proc sum {a b} {set c [expr {$a + $b}]; puts "Sum $c"; return $c}')
''
>>> r.tk.eval('sum 2 5')
Sum 7
'7'

因此,在您的例子中,获得了tcl文件的源代码后,您只需执行r.tk.eval("sum 5 5")即可调用该过程。

注意:tcl中的expr表达式总是用大括号括起来。就像我上面的例子。

相关问题 更多 >