The datetime class is a little confusing to import because it's in a module that's also called datetime. When you do from datetime import datetime you're importing the class datetime into the current scope and can just do datetime.now(). If you just do import datetime you're importing the module datetime and so the class is datetime.datetime, making the now method datetime.datetime.now(). Clear as mud? :)
Further adding to the confusion, the datetime module has a date class, and the datetime class has a date method. You're mixing the two up in your code, calling the date method of the datetime class when you mean to be constructing a date object. Since you did from datetime import datetime, you did not import the datetime.date class at all.
Anyway, here's how to fix it:
import datetime
xmas = datetime.date(2020, 12, 25) - datetime.date.today()
now = datetime.datetime.now()
print(now)
Note that in this code, xmas is a datetime.timedelta object, and now is a datetime.datetime object.
You could also do:
from datetime import date, datetime
xmas = date(2020, 12, 25) - date.today()
now = datetime.now()
print(now)
Hopefully seeing the two examples side by side helps clarify the module vs class thing. It's all about different levels of indirection -- in the first example the import statement brings in the whole module, and your code needs to specify which classes to pull out of it. In the second example, the from ... import statement pulls those two classes out of the module as part of the import, and so the code can access them by those names directly. Since the names are all so similar, you can't rely on the name to know what kind of thing you're accessing unless you really understand what exactly the import statement did.