On Mon, Jun 29, 2009 at 5:19 PM, Mark Jones<mark0...@gmail.com> wrote: > What is the python Magic going on here to make this possible?
So, you want to read up on how Python descriptors work. One application of a descriptor is the ability to create something which behaves like a "normal" attribute, but under the hood calls a method to return the actual value. In this case, Django takes advantage of that to tell whether the manager attached to the class is being accessed from the class itself or from an instance, and raises an exception in the latter case. > My background is C++ and these look like methods/objects that are > static to the class, not part of the instances. I just can't figure > out how to declare and instantiate them in python. You may want to step back a bit and re-think how you're approaching Python; truly "static" class members -- of the type you'd find in C++ -- are very rarely actually needed/used. This is actually targeted more at Java folks, but you may want to have a look at Phillip Eby's old rant "Python is not Java"; it covers some common cases where directly bringing over ideas from other languages isn't the best way to approach programming in Python: http://www.dirtsimple.org/2004/12/python-is-not-java.html -- "Bureaucrat Conrad, you are technically correct -- the best kind of correct." --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---