def default_fill_value(obj):
if hasattr(obj, '<STR_LIT>'):<EOL><INDENT>defval = _check_fill_value(None, obj.dtype)<EOL><DEDENT>elif isinstance(obj, np.dtype):<EOL><INDENT>if obj.subdtype:<EOL><INDENT>defval = default_filler.get(obj.subdtype[<NUM_LIT:0>].kind, '<STR_LIT:?>')<EOL><DEDENT>elif obj.kind in '<STR_LIT>':<EOL><INDENT>defval = default_filler.get(obj.str[<NUM_LIT:1>:], '<STR_LIT:?>')<EOL><DEDENT>else:<EOL><INDENT>defval = default_filler.get(obj.kind, '<STR_LIT:?>')<EOL><DEDENT><DEDENT>elif isinstance(obj, float):<EOL><INDENT>defval = default_filler['<STR_LIT:f>']<EOL><DEDENT>elif isinstance(obj, int) or isinstance(obj, long):<EOL><INDENT>defval = default_filler['<STR_LIT:i>']<EOL><DEDENT>elif isinstance(obj, str):<EOL><INDENT>defval = default_filler['<STR_LIT:S>']<EOL><DEDENT>elif isinstance(obj, unicode):<EOL><INDENT>defval = default_filler['<STR_LIT>']<EOL><DEDENT>elif isinstance(obj, complex):<EOL><INDENT>defval = default_filler['<STR_LIT:c>']<EOL><DEDENT>else:<EOL><INDENT>defval = default_filler['<STR_LIT:O>']<EOL><DEDENT>return defval<EOL>
Return the default fill value for the argument object.

The default filling value depends on the datatype of the input
array or the type of the input scalar:

   ========  ========
   datatype  default
   ========  ========
   bool      True
   int       999999
   float     1.e20
   complex   1.e20+0j
   object    '?'
   string    'N/A'
   ========  ========


Parameters
----------
obj : ndarray, dtype or scalar
    The array data-type or scalar for which the default fill value
    is returned.

Returns
-------
fill_value : scalar
    The default fill value.

Examples
--------
>>> np.ma.default_fill_value(1)
999999
>>> np.ma.default_fill_value(np.array([1.1, 2., np.pi]))
1e+20
>>> np.ma.default_fill_value(np.dtype(complex))
(1e+20+0j)