- pull out type() ahead of time to cut down on fn calls.

Would replace this with set(dir(self)) but not sure if some
class schemes may have issues with dir() (also for low numbers
of args, not using the set() probably faster).
This commit is contained in:
Mike Bayer
2010-07-13 11:55:08 -04:00
parent 800448ad62
commit eb890eb402
+3 -2
View File
@@ -1162,11 +1162,12 @@ def _declarative_constructor(self, **kwargs):
attributes of the instance's class are allowed. These could be,
for example, any mapped columns or relationships.
"""
cls_ = type(self)
for k in kwargs:
if not hasattr(type(self), k):
if not hasattr(cls_, k):
raise TypeError(
"%r is an invalid keyword argument for %s" %
(k, type(self).__name__))
(k, cls_.__name__))
setattr(self, k, kwargs[k])
_declarative_constructor.__name__ = '__init__'