我计划设计一个程序来跟踪我的股票账户的盈亏情况,然后我使用Python并希望用一种面向对象的方法来解决它。你知道吗
代码:
class PNL(object):
stock_amount = {}
def __init__(self,cash,position):
self.cash = cash
self.position = position
def buy(self,Stock,amount):
pass
def sell(self,Stock,amount):
pass
def stock_amt(self,Stock):
if Stock().symbol not in stock_amount:
stock_amount[Stock().symbol] = 0
else:
return stock_amount
class Stock():
def __init__(self,symbol,timestamp,price):
self.symbol = symbol
self.time = timestamp
self.price = price
a = PNL(0,0)
APPL = []
APPL.append(Stock('APPL',0,10))
APPL.append(Stock('APPL',1,12))
a.stock_amt('APPL')
for stock in APPL:
if stock.time == 0:
print stock.price
但这样不行,有人知道吗?你知道吗
首先需要修复类PNL,当用
Stock
作为参数/参数声明方法时,最好选择另一个名称,或者用小写字母编写,以区别于类Stock
。你知道吗假设您将为这些方法提供一个实例,无需编写类型,顺便说一下,无需通过执行
Stock().symbol
来再次实例化方法中的类,您将提供一个实例,或者直接提供属性符号(如果您愿意)。你知道吗此外,库存量可以存储为实例属性,如下所示:
然后当你调用你的类时,我认为你想在你构建的列表
APPL
上循环(然后只调用a.stock_amt(stock_object_created)
:相关问题 更多 >
编程相关推荐