当前位置:   article > 正文

Python 笔记 面向对象编程_定义一个类financialinstrument python

定义一个类financialinstrument python

类定义

  1. class FinancialInstrument(object):
  2. # 一些代码,这里用Pass代替
  3. pass
  4. # 命名为fi的新实例
  5. fi=FinancialInstrument()
  6. print('fi类型:',type(fi))
  7. print('读取字符串:',fi.__str__())
  8. # 定义数据
  9. fi.price=100
  10. print('数据:',fi.price)
  11. # __init__是一个重要的特殊方法,每次对象实例化调用时
  12. # 它所取的参数为对象本身(self)的可能其他参数
  13. class FinancialInstrument(object):
  14. author='Yves Hilpisch'
  15. # 初始化
  16. def __init__(self,symbol,price):
  17. self.symbol=symbol
  18. self.price=price
  19. print('作者:',FinancialInstrument.author)
  20. # 名为appl的新实例
  21. appl=FinancialInstrument('AAPL',100)
  22. # 访问实例属性
  23. print('现在的作者:',appl.symbol)
  24. # 访问类属性
  25. print('老作者:',appl.author)
  26. # 更改实例属性
  27. appl.price=105
  28. print('现在的价格:',appl.price)

继承

  1. # 通过前一版本继承的类的定义
  2. class FinancialInstrument(FinancialInstrument):
  3. # 定义get_price方法
  4. def get_price(self):
  5. return self.price
  6. # 定义set_price方法
  7. def set_price(self,price):
  8. # 根据参数更新实例属性
  9. self.price=price
  10. # 基于新类定义新实例fi
  11. fi=FinancialInstrument('AAPL',100)
  12. # 调用get_price方法获取价格
  13. print('获取价格:',fi.get_price())
  14. # 通过set_price方法更新实例属性值
  15. fi.set_price(105)
  16. print('获取新价格:',fi.get_price())
  17. # 直接访问实例属性
  18. print('访问值:',fi.price)

封装

  1. class FinancialInstrument(object):
  2. def __init__(self,symbol,price):
  3. self.symbol=symbol
  4. # 定义私有属性
  5. self.__price=price
  6. def get_price(self):
  7. return self.__price
  8. def set_price(self,price):
  9. self.__price=price
  10. fi=FinancialInstrument('APPL',100)
  11. # 获取价格
  12. print('获取价格:',fi.get_price())
  13. # 使用公有方法修改私有属性
  14. fi.set_price(105)
  15. print('修改后价格:',fi.get_price())
  16. fi.set_price(100)

为某金融工具投资组合进行建模的一个类

  1. class PortfolioPosition(object):
  2. def __init__(self,financial_instrument,position_size):
  3. # 基于FinancialInstrument实例的一个实例属性
  4. self.position=financial_instrument
  5. # PortfolioPosition的一个私有实例属性
  6. self.__position_size=position_size
  7. def get_position_size(self):
  8. return self.__position_size
  9. def update_position_size(self,position_size):
  10. self.__position_size=position_size
  11. def get_position_value(self):
  12. # 根据属性计算头寸价值
  13. return self.__position_size*self.position.get_price()
  14. pp=PortfolioPosition(fi,10)
  15. print('初始头寸:',pp.get_position_size())
  16. # 计算头寸价值
  17. print('头寸价值:',pp.get_position_value())
  18. # 访问头寸价格
  19. print('头寸价格:',pp.position.get_price())
  20. # 设置头寸价格
  21. pp.position.set_price(105)
  22. print('头寸新价格:',pp.position.get_price())
  23. # 新的头寸价值
  24. print('新头寸价值:',pp.get_position_value())

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/142201?site
推荐阅读
相关标签
  

闽ICP备14008679号