If you define a function at the interpreter, and then print the name of the function without the parens, you'll get __repr__ (representation) of the function object, because in Python, functions are objects. That's what you got, but here's a demo.
>>> def foo():
... return 1
...
>>> print foo
<function foo at 0x1005fa398>
Parentheses call the function. The call evaluates to the returned result of the function. So when you type foo(), that turns into 1. But without the parentheses, you are just talking about the function itself, not the calling of it. You expected the result of calling it.
As others will point out, you meant to type seta.print_name().
defmixed up with the parens for calling, and you won't recognize the difference. Or maybe you've got attribute syntax mixed up.