'Returns True if ``self`` has no free symbols.
It will be faster than ``if not self.free_symbols``, however, since
``is_number`` will fail as soon as it hits a free symbol.
Examples
>>> from sympy import log, Integral
>>> from sympy.abc import x
>>> x.is_number
False
>>> (2*x).is_number
False
>>> (2 + log(2)).is_number
True
>>> (2 + Integral(2, x)).is_number
False
>>> (2 + Integral(2, (x, 1, 2))).is_number
True'

@property
def is_number(self):

    return all((obj.is_number for obj in self.args))
