Official definition of call-by-value (Re: Finding the instance reference...)

Steven D'Aprano steven at REMOVE.THIS.cybersource.com.au
Tue Nov 18 02:49:00 EST 2008


On Mon, 17 Nov 2008 18:35:04 -0800, Craig Allen wrote:

>> >> * Do all objects have values? (Ignore the Python
>> >>  docs if necessary.)
>>
>> > If one allows null values, I am current thinking yes.
>>
>> I don't see a difference between a "null value" and not having a value.
>>
>>
> I think the difference is concrete... an uninitialized variable in C has
> no value, I'd say, because the value it will have is indeterminate, it
> will be whatever happens to be sitting at that location in memory,
> inconsistent.  If that variable is initialized to some value
> representing "none", like NULL, then it has a consistent value of
> "none".  There is no way to have an uninitialized variable in python, so
> they are always consistently set, so they always have values.
> 
> ?

Well said.

I'd even go so far as to say that an uninitialized variable in C has a 
random value, unless the compiler prevents you from accessing it. If the 
compiler lets you (accidentally, I assume!) do something with an 
uninitialized variable, then you're accessing whatever random value it 
happens to get.


-- 
Steven



More information about the Python-list mailing list