我是 Python 的初学者,但在 Java 中,通常这些导入会准确显示对象的来源。例如,下面的 import 语句告诉我 SpringBootApplication 对象直接来自 Spring Boot 类,我可以深入到该类中阅读其所有方法代码:
import org.springframework.boot.autoconfigure.SpringBootApplication;
现在我正在查看 python 中的 zipline 库:
https://github.com/quantopian/zipline
这是来自他们在 github repo 主页上的示例代码:
from zipline.api import (
history,
order_target,
record,
symbol,
)
因此,我查看了 zipline 文件夹,以查看是否有从中history, order_target, record, symbol
导入方法的 api 文件,因为我想读取驱动这些方法的底层代码。
该代码并没有告诉我太多(https://github.com/quantopian/zipline/blob/master/zipline/api.py):
from .finance.asset_restrictions import (
Restriction,
StaticRestrictions,
HistoricalRestrictions,
RESTRICTION_STATES,
)
from .finance import commission, execution, slippage, cancel_policy
from .finance.cancel_policy import (
NeverCancel,
EODCancel
)
from .finance.slippage import (
FixedSlippage,
VolumeShareSlippage,
)
from .utils import math_utils, events
from .utils.events import (
date_rules,
time_rules
)
__all__ = [
'EODCancel',
'FixedSlippage',
'NeverCancel',
'VolumeShareSlippage',
'Restriction',
'StaticRestrictions',
'HistoricalRestrictions',
'RESTRICTION_STATES',
'cancel_policy',
'commission',
'date_rules',
'events',
'execution',
'math_utils',
'slippage',
'time_rules'
]
但是,有一个名为的文件api.pyi
似乎包含一些关于我感兴趣的方法的文本(https://github.com/quantopian/zipline/blob/master/zipline/api.pyi)。例如,使用 method record
,它说:
def record(*args, **kwargs):
"""Track and record values each day.
Parameters
----------
**kwargs
The names and values to record.
Notes
-----
These values will appear in the performance packets and the performance
dataframe passed to ``analyze`` and returned from
:func:`~zipline.run_algorithm`.
"""
我想也许代码就在里面zipline.run_algorithm
,并且还查看了该zipline/run_algorithm
文件,但在 repo 中找不到它。
在 python 中为这些方法保存的代码在哪里?我只是想阅读代码以更好地了解它的工作原理。