Steven D'Aprano <[EMAIL PROTECTED]> writes: > having the ability to create a protocol is a Very Good Thing, and > double leading and trailing underscore names are the accepted Python > style for such special methods.
Is it? There are many protocols that use plain names. Even the built-in types support many "protocol" operations via plain-named attributes. dict.get, dict.items, dict.keys, dict.values list.insert, list.append, list.extend, list.remove file.read, file.write, file.close The double-underscore convention seems more for attributes *that are interpreted specially*, e.g. by syntax operators or other core language features. Go ahead and implement your protocol using attributes with plain names. What makes it a protocol is that it's likely to be generally applicable, and the names are chosen to apply to other classes equally well. -- \ “I cannot conceive that anybody will require multiplications at | `\ the rate of 40,000 or even 4,000 per hour …” —F. H. Wales, | _o__) 1936 | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list