This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2010年06月05日 06:48 by techtonik, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Messages (7) | |||
|---|---|---|---|
| msg107123 - (view) | Author: anatoly techtonik (techtonik) | Date: 2010年06月05日 06:48 | |
Current OOP API of datetime is ugly: from datetime import datetime print datetime.today().isoformat() The proposal is to add today() and now() as module functions: from datetime import today, now print today() # datetime.date(2010, 6, 5) print now() # datetime.datetime(2010, 6, 5, 9, 48, 4, 868000) |
|||
| msg107165 - (view) | Author: Alexander Belopolsky (belopolsky) * (Python committer) | Date: 2010年06月06日 00:04 | |
How hard is it to add now = datetime.now todate = date.today at the top of your module is you really like shorter names? -1 |
|||
| msg107332 - (view) | Author: Alexander Belopolsky (belopolsky) * (Python committer) | Date: 2010年06月08日 18:07 | |
Note that it is important to keep class methods because in some cases it is convenient to obtain now/today from datetime/date instances instead of importing them from the module. So deprecating class methods is not an option and adding module level functions that are equivalent to existing class methods is not TOOWTDI. |
|||
| msg107520 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2010年06月11日 02:37 | |
I actually agree with Anatoly here. I find it much more intuitive to do import datetime timestamp = datetime.now() than to do timestamp = datetime.datetime.now() I always have to remember that 'now' is a class method, often after getting a "datetime module has no attribute 'now'" message. In most standard library modules a function like that would be, well, a function. I can't imagine code where I'd find it more convenient to get 'now' from the class, and if I saw code like timestamp = othertimestamp.now() I'd run screaming. Personally I think the class methods would be better off deprecated in favor of module level functions. However, all that said, the datetime API is what it is, and I'm not sure it is worth going through a deprecation cycle for this. (Though othertimestamp.now() really does give me the heebie jeebies.) |
|||
| msg107525 - (view) | Author: Alexander Belopolsky (belopolsky) * (Python committer) | Date: 2010年06月11日 04:02 | |
On Thu, Jun 10, 2010 at 10:37 PM, R. David Murray <report@bugs.python.org> wrote: > > R. David Murray <rdmurray@bitdance.com> added the comment: > > I actually agree with Anatoly here. I find it much more intuitive to do > > import datetime > > timestamp = datetime.now() > > than to do > > timestamp = datetime.datetime.now() > Given the unfortunate name clash between the class and the module, I never do "import datetime" and instead doe "from datetime import datetime, date". I find it very convenient that importing datetime class brings in all related functions and I don't need to import factory functions separately. Also, ISTM that the datetime module was designed to allow easy extension by subclassing. The factory methods are written so that they work for subclasses: ... pass >>> Date.today() Date(2010, 6, 10) Writing a separate module level today() for the subclass would be quite awkward. |
|||
| msg107530 - (view) | Author: Raymond Hettinger (rhettinger) * (Python committer) | Date: 2010年06月11日 06:35 | |
FWIW, I concur with the rejection. |
|||
| msg107852 - (view) | Author: anatoly techtonik (techtonik) | Date: 2010年06月15日 08:34 | |
Raymond mention your reasons please. I may need them one day for describing development process. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:01 | admin | set | github: 53149 |
| 2010年06月15日 08:34:46 | techtonik | set | messages: + msg107852 |
| 2010年06月11日 06:44:45 | rhettinger | set | status: open -> closed |
| 2010年06月11日 06:35:23 | rhettinger | set | nosy:
+ rhettinger messages: + msg107530 |
| 2010年06月11日 04:02:55 | belopolsky | set | messages: + msg107525 |
| 2010年06月11日 02:37:53 | r.david.murray | set | status: pending -> open nosy: + r.david.murray messages: + msg107520 |
| 2010年06月08日 18:07:56 | belopolsky | set | status: open -> pending title: datetime functions -> Add module level now() and today() functions to datetime module type: enhancement messages: + msg107332 resolution: rejected |
| 2010年06月06日 00:04:30 | belopolsky | set | priority: normal -> low nosy: + belopolsky messages: + msg107165 assignee: belopolsky |
| 2010年06月05日 06:48:26 | techtonik | create | |