Python 笔记 面向对象编程

类定义

class FinancialInstrument(object):
	# 一些代码,这里用Pass代替
	pass

# 命名为fi的新实例
fi=FinancialInstrument()
print('fi类型:',type(fi))
print('读取字符串:',fi.__str__())
# 定义数据
fi.price=100
print('数据:',fi.price)

# __init__是一个重要的特殊方法,每次对象实例化调用时
# 它所取的参数为对象本身(self)的可能其他参数
class FinancialInstrument(object):
	author='Yves Hilpisch'
	# 初始化
	def __init__(self,symbol,price):
		self.symbol=symbol
		self.price=price

print('作者:',FinancialInstrument.author)
# 名为appl的新实例
appl=FinancialInstrument('AAPL',100)
# 访问实例属性
print('现在的作者:',appl.symbol)
# 访问类属性
print('老作者:',appl.author)
# 更改实例属性
appl.price=105
print('现在的价格:',appl.price)

继承

# 通过前一版本继承的类的定义
class FinancialInstrument(FinancialInstrument):
	# 定义get_price方法
	def get_price(self):
		return self.price
	# 定义set_price方法
	def set_price(self,price):
		# 根据参数更新实例属性
		self.price=price
# 基于新类定义新实例fi
fi=FinancialInstrument('AAPL',100)
# 调用get_price方法获取价格
print('获取价格:',fi.get_price())
# 通过set_price方法更新实例属性值
fi.set_price(105)
print('获取新价格:',fi.get_price())
# 直接访问实例属性
print('访问值:',fi.price)

封装

class FinancialInstrument(object):
	def __init__(self,symbol,price):
		self.symbol=symbol
		# 定义私有属性
		self.__price=price
	def get_price(self):
		return self.__price
	def set_price(self,price):
		self.__price=price
fi=FinancialInstrument('APPL',100)
# 获取价格
print('获取价格:',fi.get_price())
# 使用公有方法修改私有属性
fi.set_price(105)
print('修改后价格:',fi.get_price())
fi.set_price(100)

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

class PortfolioPosition(object):
	def __init__(self,financial_instrument,position_size):
		# 基于FinancialInstrument实例的一个实例属性
		self.position=financial_instrument
		# PortfolioPosition的一个私有实例属性
		self.__position_size=position_size
	def get_position_size(self):
		return self.__position_size
	def update_position_size(self,position_size):
		self.__position_size=position_size
	def get_position_value(self):
		# 根据属性计算头寸价值
		return self.__position_size*self.position.get_price()
pp=PortfolioPosition(fi,10)
print('初始头寸:',pp.get_position_size())
# 计算头寸价值
print('头寸价值:',pp.get_position_value())
# 访问头寸价格
print('头寸价格:',pp.position.get_price())
# 设置头寸价格
pp.position.set_price(105)
print('头寸新价格:',pp.position.get_price())
# 新的头寸价值
print('新头寸价值:',pp.get_position_value())

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值