site=object()
for k,v in dict.iteritems():
setattr(site,k,v)
print site.a#it won't works
i use this code but it didn't work,any one could help?thanks
site=object()
for k,v in dict.iteritems():
setattr(site,k,v)
print site.a#it won't works
i use this code but it didn't work,any one could help?thanks
class site(object):
pass
for k,v in dict.iteritems():
setattr(site,k,v)
print site.a #it does works
As docs say, object()
returns featureless object, meaning it cannot have any attributes. It doesn't have __dict__
.
What you could do is the following:
>>> site = type('A', (object,), {'a': 42})
>>> site.a
42
The easiest way to populate one dict
with another is the update()
method, so if you extend object
to ensure your object has a __dict__
you could try something like this:
>>> class Site(object):
... pass
...
>>> site = Site()
>>> site.__dict__.update(dict)
>>> site.a
Or possibly even:
>>> class Site(object):
... def __init__(self,dict):
... self.__dict__.update(dict)
...
>>> site = Site(dict)
>>> site.a