python类属性的可见性

2024-09-28 01:31:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python相当陌生,正试图围绕一些Quantlib交换对象编写一个包装类。问题是,我试图使用传递给构造函数或在构造函数中计算的属性来调用Qualtlib Schedule对象。问题是当我这样运行代码时

 import swapleg as sl

Leg1 = sl.SwapLeg("Fix","AUD",ql.Date(26, 9, 2018),ql.Date(26, 9, 2028),ql.Monthly)
print(Leg1.EffectiveDate)
Leg1.showSchedule()

我得到以下错误

^{pr2}$

代码被列出-对象Leg1被实例化,EffectiveDate被设置。我的问题是当showSchedule调用Quantlib调用时ql.时间表,它会失去对有效日期的可见性,即使我正在查看它自我生效日期. 很明显我在这里遗漏了一些东西。任何帮助都将不胜感激。在

import QuantLib as ql

class SwapLeg:

    def __init__(self,LegType,CCY,EffectiveDate=None,TerminationDate=None,Tenor=None,Rate=None,Spread=None):
                self.LegType=LegType
                self.CCY=CCY
                self.Tenor=Tenor
                if EffectiveDate is None:
                    self.EffectiveDate = ql.Settings.instance().evaluationDate
                else:
                    self.EffectiveDate =EffectiveDate
                ......

    def _LegSchedule(self):
        ls = ql.Schedule(   self.EffectiveDate,
                            self.TerminationDate,
                            self.Tenor,
                            self.Calendar,
                            self.businessDayConvention,
                            self.businessDayConvention,
                            self.GenRule,
                            self.EndOfMonth,
                            self.FirstDate,
                            self.NextToLastDate)
        return ls

    @classmethod
    def showSchedule(self):
        for i, d in enumerate(self._LegSchedule(self)):
            print("{0} {1}".format(i+1,d))

Tags: 对象代码importselfnonedefscheduleql

热门问题