可以使用 datetime 模块中的 date 类和 timedelta 类来实现。具体代码如下:
```python
import datetime
today = datetime.date.today() # 获取当前日期
first_day = today.replace(day=1) # 获取当月第一天日期
last_month = first_day - datetime.timedelta(days=1) # 获取上个月最后一天日期
last_month_days = last_month.day # 获取上个月天数
# 获取当月日期列表
month_days = []
for i in range(1, today.day + 1):
month_days.append(datetime.date(today.year, today.month, i))
print(month_days)
```
输出结果为:
```
[datetime.date(2022, 1, 1), datetime.date(2022, 1, 2), datetime.date(2022, 1, 3), datetime.date(2022, 1, 4), datetime.date(2022, 1, 5), datetime.date(2022, 1, 6), datetime.date(2022, 1, 7), datetime.date(2022, 1, 8), datetime.date(2022, 1, 9), datetime.date(2022, 1, 10), datetime.date(2022, 1, 11), datetime.date(2022, 1, 12), datetime.date(2022, 1, 13), datetime.date(2022, 1, 14), datetime.date(2022, 1, 15), datetime.date(2022, 1, 16), datetime.date(2022, 1, 17), datetime.date(2022, 1, 18), datetime.date(2022, 1, 19), datetime.date(2022, 1, 20), datetime.date(2022, 1, 21), datetime.date(2022, 1, 22), datetime.date(2022, 1, 23), datetime.date(2022, 1, 24), datetime.date(2022, 1, 25), datetime.date(2022, 1, 26), datetime.date(2022, 1, 27), datetime.date(2022, 1, 28), datetime.date(2022, 1, 29), datetime.date(2022, 1, 30), datetime.date(2022, 1, 31)]
```