为什么PyEphem文档没有提及rise_time或transit_time?

时间:2015-01-16 19:32:54

标签: python pyephem

是否有PyEphem中所有可用功能和对象的完整列表?我找到了一个列表here。但它似乎并不包含所有东西。存在rise_timetransit_time等属性,并在教程中简要提及,但手册中未提及。我应该使用它们吗?还有其他选择吗?

2 个答案:

答案 0 :(得分:2)

不推荐使用rise_time rise_az transit_time transit_alt set_time set_azcircumpolar这六个属性,并发出警告自2007年以来它们已经到位了。不幸的是 - 我当时并不确定我是否知道这一点 - 默认情况下,Python不显示开发人员目标警告,可能不会吓到Python应用程序的用户:

$ python script_that_asks_for_next_rise.py
2014/1/2 18:04:00

https://docs.python.org/2/library/warnings.html上有关警告的文档表明“......您应该确保使用通常被忽略的警告来测试您的代码。您可以通过传递-Wd来从命令行执行此操作...“,我想,这意味着我已经犯了十多年的错误:我从未想过要将-Wd添加到针对第三方库开发时的命令行!在这种情况下这样做的结果是:

$ python -Wd tmp18.py
tmp18.py:15: DeprecationWarning: the ephem.Body attributes 'rise_time', 'rise_az', 'transit_time', 'transit_alt', 'set_time', 'set_az', 'circumpolar', and 'never_up' are deprecated; please convert your program to use the ephem.Observer functions next_rising(), previous_rising(), next_transit(), and so forth

  print moon.rise_time
2014/1/2 18:04:00

但是,由于大多数开发人员可能在不考虑它的情况下离开-Wd,因此多年来不止一个开发人员对这些属性存在但不再记录或支持感到惊讶。

无论如何,我会继续将它们从下一个版本中删除,以防止混淆并防止人们遇到的问题。快速参考中显示的方法next_pass()是这六个属性的官方继承者。

有关官方支持的属性的更多信息,最完整的参考是PyEphem“快速参考:”

http://rhodesmill.org/pyephem/quick.html

答案 1 :(得分:1)

不,除了源代码本身外,PyEphem中没有可用的所有函数和对象的完整列表。

>>> import ephem
>>> ephem.__dict__
{'AlwaysUpError': ephem.AlwaysUpError,
 'Angle': ephem.Angle,
 'Ariel': ephem.Ariel,
 'B1900': 0.3135000001639128,
 'B1950': 18262.423500000034,
 'Body': ephem.Body,
 [...]
 'star': <function ephem.star>,
 'sun_radius': 695000000.0,
 'tiny': 1.346704669748711e-08,
 'twopi': 6.283185307179586,
 'uranometria': <function ephem._libastro.uranometria>,
 'uranometria2000': <function ephem._libastro.uranometria2000>}
>>> 

注意:省略号([...])是我的。