Hi, I just started to learn tcl and TclOO, so i need some help with my class. I want to run method Print for my object, when i press button, how can i do it? Here is example ====== package require Tk oo::class create test { constructor {} { my gui } method gui {} { pack [frame .main -bg green] -fill both -padx 2 -pady 2 -expand yes -side left -anchor ne pack [button .b -text "test" -relief flat -command [??????????]] -side left -padx 2 -pady 2 } method Print {} { puts "ola" } } set c [test new] ====== I can do it like this, but in this case method print is public: ====== package require Tk oo::class create test { constructor {} { my gui } method gui {} { pack [frame .main -bg green] -fill both -padx 2 -pady 2 -expand yes -side left -anchor ne pack [button .b -text "test" -relief flat -command "[self] print"] -side left -padx 2 -pady 2 } method print {} { puts "ola" } } set c [test new] ====== Thank you ----- Try something like: ====== [namespace code { my Print }] ====== [DKF]: The [my] command is always in the object's current namespace (strictly, there's one per object) so you can use: ====== [list [namespace current]::my Print] ====== Alternatively, you can either use the [namespace code] call above. Or build a command with [namespace eval]: ====== [list namespace eval [namespace current] [list my Print]] ====== You can use “[info object] namespace [[[self]]]” instead of “[namespace current]”, but that's a bit long-winded. (The name of an object's namespace is not documented, but it is an ''almost'' entirely ordinary namespace but with an object hanging off it and with a lot of tuning applied.)