如何阅读导入对象的代码?

时间:2016-10-08 19:46:53

标签: python

我不知道对象支持哪些属性。我怎样才能打开模块,弄清楚幕后发生了什么?#34;

例如,我想弄清楚datetime模块中datetime模块的__init__对象在import datetime curtime = datetime.datetime.now() print(curtime[0]) 中的属性:

datetime

但是,由于__getitem__没有day方法,因此必须采用不同的方式来访问每个时间段(monthyear,{{1}等等。)

我发现(通过反复试验)你可以这样做:

datetime.datetime.now().time()
datetime.datetime.now().date()

但我不确定我在这里所做的正确名称是什么,以及如何找到属于此对象/类的其他方法。

2 个答案:

答案 0 :(得分:0)

我发现dir函数在处理未知和未记录的对象(datetime is well documented,btw)时最有用。

但如果没有记录:

>>> import datetime
>>>
>>> dir(datetime)
['MAXYEAR', 'MINYEAR', '__doc__', '__name__', '__package__', 'date', 
'datetime', 'datetime_CAPI', 'time', 'timedelta', 'tzinfo']
>>> datetime.date
<type 'datetime.date'>
>>> dir(datetime.date)
['__add__', '__class__', '__delattr__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__',
'__lt__', '__ne__', '__new__', '__radd__', '__reduce__', '__reduce_ex__',
'__repr__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__',
'__subclasshook__', 'ctime', 'day', 'fromordinal', 'fromtimestamp',
'isocalendar', 'isoformat', 'isoweekday', 'max', 'min', 'month', 'replace',
'resolution', 'strftime', 'timetuple', 'today', 'toordinal', 'weekday',
'year']

依旧......

答案 1 :(得分:0)

在您的终端中,键入pydoc (whatever),您应该能够看到它拥有的所有变量和功能。如果它没有记录,dir([whatever])是要走的路。在任何情况下,显然谷歌。 顺便说一句,为了澄清您问题中的条款,datetime是一个模块。你必须要了解模块,类和对象是不同的东西。您可以详细了解模块和dir()函数here

相关问题