티클러 2026. 4. 28. 12:11

홈페이지: https://github.com/flightaware/tohil

 
Tohil
은 파이썬과 TCL 사이의 통합을 제공하는 것을 목표로 합니다.
Tohil은 파이썬 확장인 동시에 TCL 확장이기도 하며, Tcl 8.6 이상 및 Python 3.6 이상 버전에서 Tcl과 파이썬 간의 유연한 양방향 호출을 가능하게 합니다.
Tohil은 오픈 소스 소프트웨어이며, 허용적인 '3-clause BSD 라이선스'(LICENSE.txt 참조)에 따라 영리 목적이나 재배포를 포함하여 무료로 사용할 수 있습니다.
Tohil의 발음은 취향에 따라 '토-힐(toe-heel)' 또는 '토-힐(toe-hill)'로 부를 수 있습니다.
Tohil은 튜토리얼과 레퍼런스를 포함하여 계속해서 늘어나고 있는 문서들을 갖추고 있으며, https://flightaware.github.io/tohil-docs/ 에서 확인하실 수 있습니다.
>>> import tohil
>>> clock = 1616182348
>>> tohil.eval(f"clock format {clock} -locale es -gmt 1", to=str)
'vie mar 19 19:32:28 GMT 2021'
>>> tohil.eval('set a [list a 1 b 2 c 3]')
'a 1 b 2 c 3'
>>> tohil.eval('return $a', to=list)
['a', '1', 'b', '2', 'c', '3']
>>> tohil.eval('return $a',to=dict)
{'a': '1', 'b': '2', 'c': '3'}

>>> a, b, c = tohil.eval("list 1 2 3", to=tuple)
>>> c
'3'
>>> import tohil
>>> a = tohil.eval('list 1 [list 2 4 5] 3')
>>> print(a)
1 {2 4 5} 3

>>> import tohil
>>> tohil.eval('set a(99) goof')
'goof'
>>> tohil.eval('set a(5) foo')
'foo'
>>> tohil.getvar('a','99')
'goof'
>>> tohil.getvar(array='a',var='5')
'foo'
>>> tohil.getvar(array='a',var='16')


>>> tohil.eval('set a [list a 1 b 2 c 3]')
'a 1 b 2 c 3'
>>> tohil.subst("$a")
'a 1 b 2 c 3'
>>> tohil.eval('return $a')
'a 1 b 2 c 3'
>>> tohil.eval('return $a',to=list)
['a', '1', 'b', '2', 'c', '3']
>>> tohil.eval('return $a',to=dict)
{'a': '1', 'b': '2', 'c': '3'}

>>> tohil.eval(to=list,tcl_code="return [list 1 2 3 4]")
['1', '2', '3', '4']
package require tohil

puts "calling out to Python to add 5 + 5: [::tohil::eval "5 + 5"]"

tohil::exec {
print('hello, world')
}