In python all data is object and any object should have attributes and methods. Does somebody know python object without any attributes and methods?
>>> len(dir(1))
64
In python all data is object and any object should have attributes and methods. Does somebody know python object without any attributes and methods?
>>> len(dir(1))
64
This is easy to accomplish by overriding __dir__
and __getattribute__
:
class Empty(object):def __dir__(self):return []def __getattribute__(self, name):raise AttributeError("'{0}' object has no attribute '{1}'".format(type(self).__name__, name))e = Empty()
dir(e)
[]
e.__name__
AttributeError: 'Empty' object has no attribute '__name__'
(In python2, Empty
needs to be a new-style class, so the class Empty(object):
is required; in python3 old-style classes are extinct so class Empty:
is sufficient.)