What's in a name?
Andrew Dalke
dalke at acm.org
Thu May 25 11:52:28 EDT 2000
Edward S. Vinyard wrote:
>For example, forcing the first letter of class names to be capitalized
>makes it visually clear which names are classes. I enjoy Python's lack of
>block delimiters and I think I would enjoy the lack of implicitness here,
>too.
Will the following be allowed?
import UserList
x = UserList.UserList
or will all assignment have to preserve case?
What about:
def f():
return UserList.UserList
x = f()
or will f() have to be capitalized if it returns classes, thus making
x by capitalized because it gets something from F()?
Sometimes you use factory functions instead of a constructor. Consider
the following common idiom:
try:
from cStringIO import StringIO # function
except ImportError:
from StringIO import StringIO # constructor
f = StringIO("This is some text")
Would you prevent the first from occuring? Similarly, any sort of
dispatch function will likely need to allow both functions and constructors
to be used interchangeably:
table = {
"i", int,
"sf", StringIO,
...
}
def unpack_object(s):
datatype, data = string.split(s)
f = table.get(datatype, None)
if f is None:
raise TypeError("unknown datatype", datatype)
return f(data)
Andrew
dalke at acm.org
More information about the Python-list
mailing list