[Python-3000] PEP 3133: Introducing Roles

Arvind Singh arvind1.singh at gmail.com
Mon May 14 12:06:32 CEST 2007

> Asking Questions About Roles

Shouldn't there be some way to ``revoke'' roles?

How can we get a list of all roles played by an object?

Should there be a way to check ``loosely'' whether an object can
potentially play a given role? (i.e., checking whether an object
provides a give interface, atleast syntactically)

I understand that this can be achieved via:

      now_performs(instance.__class__, [role.RoleToCheck])
      print("can't play role")
      print("maybe plays role")

But such approach will be error prone (``revoking'' roles later, and
such; destructive checks are bad idea, anyway). Better would be to

if performs(instance, [role.RoleToCheck], loose=True):
      print("maybe plays role")

> Assigning Roles at Runtime

Maybe it should be suggested that dynamic role assignment should not
be made without knowing the implementation (with a reminder about
tree's bark() and dog's bark() ).


More information about the Python-3000 mailing list