目录python
若是未作特别说明,文中的程序都是 python3 代码。函数
载入 QuantLib:code
import QuantLib as ql print(ql.__version__)
1.15
QuantLib 中描述货币基本信息的类是 Currency
及其派生类,Currency
的体系很庞杂,但层次结构很简单。整个类的继承结构分为两层:Currency
做为惟一的基类;一种货币对应一个派生类,例如表示美圆的 USDCurrency
,表示人民币的 CNYCurrency
以及表示日元的 JPYCurrency
,等等。orm
Currency
及其派生类的构造函数不接受参数,须要注意的是,基类 Currency
是能够实例化的。对象
Currency
及其派生类的成员函数基本上做为类的检查器出现,直白地提供一些描述性的信息。继承
经常使用成员函数以下:字符串
name()
:返回字符串,货币的名称;code()
:返回字符串,货币的 ISO4217 代码,一般是三个大写英文字母;numericCode()
:返回整数,货币的 ISO4217 代码对应的数字;symbol()
:返回字符串,即现实世界中经常使用于表示该货币的一个符号,美圆的话就是“$”,日元的话就是“¥”。须要注意的是,该函数返回的多是 Unicode,在 python 中可能致使程序运行失败;fractionSymbol()
:返回字符串,即现实世界中经常使用于表示该货币最小单位的一个符号,和 symbol()
同样,该函数返回的多是 Unicode,在 python 中可能致使程序运行失败;fractionsPerUnit()
:返回整数,一单位货币相对于该货币最小单位的倍数,一般是 100。format()
:返回字符串,一个用于格式化打印结果的“格式化字符串”。empty()
:返回布尔值,若是对象由派生类实例化,则返回 True
;若是对象由 Currency
实例化,则返回 False
,毕竟基类对象中货币信息是“空”的。rounding()
:返回一个 Rounding
对象,即该货币舍入的规则,默认不进行舍入。示例,it
import QuantLib as ql usd = ql.USDCurrency() cny = ql.CNYCurrency() print('{0:<20}{1}'.format('USDCurrency', 'CNYCurrency')) print('{0:<20}{1}'.format(usd.name(), cny.name())) print('{0:<20}{1}'.format(usd.code(), cny.code())) print('{0:<20}{1}'.format(usd.numericCode(), cny.numericCode())) print('{0:<20}{1}'.format(usd.symbol(), cny.symbol())) # print('{0:<20}{1}'.format(usd.fractionSymbol(), cny.fractionSymbol())) print('{0:<20}{1}'.format(usd.fractionsPerUnit(), cny.fractionsPerUnit())) print('{0:<20}{1}'.format(usd.format(), cny.format())) c1 = ql.Currency() c2 = ql.EURCurrency() c3 = ql.USDCurrency() c4 = c2 e1 = c1.empty() e2 = c2.empty() e3 = c3.empty() e4 = c4.empty() print(e1, e2, e3, e4)
USDCurrency CNYCurrency U.S. dollar Chinese yuan USD CNY 840 156 $ Y 100 100 %3% %1$.2f %3% %1$.2f True False False False