Return the file name of the object that defines the function 'str' in
object 'ob'. The returned value can be other than 'file_name(ob)' if
the function is defined by an inherited object.
0 is returned if the function was not defined.
By default, functions that cannot be called from outside the object
(protected and private functions) are treated as not defined. If
'flag' is specified and is nonzero, such functions are reported as
well.
Note that function_exists() does not check shadows.
If no object is passed as the second argument, this efun will default
to this_object().