我熟悉Python中的过程编程。不过,我刚刚开始学习python的课程,所以如果你觉得这是个没用的问题,请耐心听我说。你知道吗
我一直在关注Steve F.Lott的书《python中的构建技能》和《面向对象设计中的构建技能》,当他让我做以下练习时,我感到困惑:
Classname.__init__(self,name,symbol,*blocks)
其中名称和符号是公司的符号(要更完整地描述问题-this是我正在研究的)。*块应该代表另一个类的集合。到现在为止我都试过这个:
class StockBlock():
"""Define a block of stock"""
def __init__(self,date,price,nos):
self.date=date
self.price=price
self.nos=nos
def __str__(self):
return "%s %d %d" %(self.date,self.price,self.nos)
def getPurchValue(self):
self.Purch_val=self.price*self.nos
return self.Purch_val
def getSaleValue(self,salePrice):
self.SalesVal=salePrice*self.nos
return self.SalesVal
def getROI(self,salePrice):
self.SalesVal=salePrice*self.nos
roi=((self.SalesVal)-(self.Purch_val))/(self.Purch_val)
return roi
def getStock(self):
return self
以及
def Position(StockBlock):
def __init__(self,name,sym,*blocks):
super(StockBlock,self).__init__(*blocks)
self.name=name
self.sym=sym
def __str__(self):
return "Symbol: %s Total Val:%d" %(self.sym,self.totalval)
def getPurchValue(self):
self.totalval=0
for obj in self._stocks:
self.totalval+=obj.getPurchValue()
return self.totalval
def getSaleValue(self,salePrice):
self.totalsale=0
for d in self._stocks:
self.totalsale+=d.getSaleValue(salePrice)
return self.totalsale
def getROI(self,salePrice):
self.roi=(self.getSaleValue()- self.getPurchValue())/self.getPurchValue()
return self.roi
您能告诉我如何用StockBlock类中的对象列表初始化Position类吗?你知道吗
谢谢。你知道吗
你需要理解“继承”和“组合”的概念。你知道吗
“卡车”是一种特殊的“汽车”。对于这种关系,可以使用继承:
class Truck(Car)
。你知道吗但不管你怎么看,轮子不是汽车。猫有三个或更多的轮子。这是一个部分因此要将车轮添加到汽车类型类中,您需要使用合成。你知道吗
在您的代码中,
Position
并不是一种特殊的StockBlock
,它只是包含一个StockBlock
的集合。所以你需要像这样初始化你的类:相关:
相关问题 更多 >
编程相关推荐