[Tutor] If a method has no return type?

Steven D'Aprano steve at pearwood.info
Thu Feb 7 10:58:34 CET 2013


On 07/02/13 17:32, wesley chun wrote:
> On Thu, Feb 7, 2013 at 12:09 AM, Sunil Tech<sunil.techspk at gmail.com>  wrote:
>
>> If a method has no return type?
>> what will it return?
>>
>
> note the original question is partially invalid... Python functions and
> methods aren't typed. however, i imagine the OP really meant *return value*
> instead, so the answer is really the following:
> functions *and* methods with no explicit return *value* return None... this
> happens when you either have no return statement or just return by itself
> with no object given.
>
> one exception is __init__()... you're never supposed to return anything
> from it... ever. i can't think of any others... can you?

In-place modification methods typically return None. Functions and methods
intended to operate as procedures, or via side-effect, also typically
return None:

list.sort
list.reverse
list.append
list.extend
dict.clear
dict.update
set.clear
set.update
__delitem__
__setitem__
_delattr__
__setattr__
random.shuffle
file.close
print  # Python 3 only

But as far as I know, __init__ is the only one which actually enforces the
rule that it returns None, at least in Python 3.3.



-- 
Steven


More information about the Tutor mailing list