Для классов, определенных в питона коде, inspect.getmodule работает для обоих объектов и типовinspect.getmodule невязки для DateTime
>>> import calendar
>>> c = calendar.Calendar()
>>> print inspect.getmodule(c)
<module 'calendar' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/calendar.pyc'>
>>> print inspect.getmodule(type(c))
<module 'calendar' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/calendar.pyc'>
Но в случае DateTime, он не работает для объектов:
>>> import datetime
>>> d = datetime.datetime.now()
>>> print inspect.getmodule(d)
None
>>> print inspect.getmodule(type(d))
<module 'datetime' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/datetime.so'>
Почему это несоответствие?
Календарь() создает объект, и теперь() просто возвращает время? – chris
Я не понимаю, что вы подразумеваете под этим: '>>> d = datetime.datetime.now() >>> repr (d) 'datetime.datetime (2014, 12, 3, 19, 8) , 48, 279667) ' >>> print type (d) <тип' datetime.datetime '> ' – linus
Единственное отличие, которое я вижу, это то, что datetime скомпилировано в динамическую .so lib и календарь хранится как .pyc – chris