On 2005-07-07, Ron Adam <[EMAIL PROTECTED]> wrote: > Grant Edwards wrote: > >> On 2005-07-06, Ron Adam <[EMAIL PROTECTED]> wrote: >> >> >>>It would be a way to set an argument as being optional without >>>actually assigning a value to it. The conflict would be if >>>there where a global with the name baz as well. Probably it >>>would be better to use a valid null value for what ever baz if >>>for. If it's a string then "", if its a number then 0, if it's >>>a list then [], etc... >> >> Except those aren't "null values" for those types. 0 is a >> perfectly good integer value, and I use it quite often. There's >> a big difference between an "invalid integer value" and an >> integer with value 0. > > Why would you want to use None as an integer value?
1) So I know whether an parameter was passed in or not. Perhaps it's not considered good Pythonic style, but I like to use a single method for both get and set operations. With no parameters, it's a get. With a parameter, it's a set: class demo: def foo(v=None): if v is not None: self.v = v return self.v 2) So I can use it as sort of a NaN equivalent. if self.fd is None: self.fd = os.open('foo.bar','w') if self.fd is not None: os.close(self.fd) self.fd = None > If a value isn't established yet, then do you need the name > defined? I find it more obvious to set the name to None during the periods that it isn't valid than to delete it and check for a NameError when I want to know if the value is usable or not. > Wouldn't it be better to wait until you need the name then > give it a value? "Better" is a value judgement. I prefer setting it None and than deleting it and then checking for existance. -- Grant Edwards grante Yow! Hey, LOOK!! A pair of at SIZE 9 CAPRI PANTS!! They visi.com probably belong to SAMMY DAVIS, JR.!! -- http://mail.python.org/mailman/listinfo/python-list