On Sat, Aug 19, 2017 at 2:06 AM, Stefan Ram <r...@zedat.fu-berlin.de> wrote: > Chris Angelico <ros...@gmail.com> writes: >>Wrong. Your parameter always contains an object. Sometimes that object >>is an array, sometimes that object is null. Null is not the absence of >>an object, any more than zero is the absence of a number, or black is >>the absence of an image. > > »The reference values (often just references) are > pointers to these objects, and a special null reference, > which refers to no object.« > > The Java Language Specification 8, section 4.3.1 > > (Maybe your are thinking of Python's »None«, > which is something different than Java's »null«.)
I'm thinking of the abstract concept of a "value". Java differentiates between "reference values" and "primitive values", where numbers and strings are not reference values. The point of the above sentence is that "null" is a special kind of reference value, as opposed to being a kind of primitive value. But whether something is a reference or primitive type, it's still a "value" in the abstract sense, and can be passed as a parameter to a function. Python simplifies things a lot here. Every value is an object. None is an object, 42 is an object, "spam" is an object, [1,2,3] is an object, and dict is an object. "Value" and "object" become virtually interchangeable. But even in Java, where some things are objects and some are not, they are still all values. So I was slightly wrong in my terminology (I said "object" when it would have been more accurate to say "value"), but I stand by the gist of what I said there. ChrisA -- https://mail.python.org/mailman/listinfo/python-list