def trace(self, *args, **kwargs):
        """
        helper method to print "<name>.<func> [: <args> <kwargs>]"
        """
        caller_frame = inspect.stack()[1]
        caller_name = caller_frame[3]

        _name, _caller = self.name, caller_name
        _colon = _args = _kwargs = ""

        if args or kwargs:
            _colon = ' :'

        if len(args) == 1:
            _args = ' ' + str(args[0])
        elif args:
            _args = ' ' + str(args)

        if kwargs:
            _kwargs = ' ' + str(kwargs)

        print ("%(_name)s.%(_caller)s%(_colon)s%(_args)s%(_kwargs)s" % locals())

        helper method to print "<name>.<func> [: <args> <kwargs>]"
        
recipes/Python/577383_Object_snoop__experiment_Pythspecial/recipe-577383.py