定义投资组合类和局部全局变量错误

问题描述

我需要用 Python 构建一个金融投资组合,我在这里引用了必要的部分来向您展示我遇到的错误

import random

rand_s = random.uniform(0.5,1.5)
    
class Portfolio:
    asset_type = 'portfolio'
    def __init__(self):
        self.cash = 0
        self.stocks = {}
        self.funds = {}
        self.transactions = []

    def buyStock(self,num_shares,Stock):        
        self.stocks[Stock.symbol] = num_shares
        self.cash -= num_shares*Stock.price
        self.transactions.append(f"{num_shares} shares of {Stock.symbol} added to the Stocks account.")
        return self.stocks

    def sellStock(self,sold_shares,Stock):
        if sold_shares == self.stocks[Stock.symbol]:
            self.stocks.pop(Stock.symbol)
            selling_price = rand_s*Stock.price
            self.cash += selling_price*sold_shares
            num_shares -= sold_shares
        elif sold_shares < self.stocks[Stock.symbol]:
            selling_price = rand_s*Stock.price
            self.cash += selling_price*sold_shares
            num_shares -= sold_shares

当我应用代码时:

portfolio.sellStock(2,s)

它给了我错误

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-26-535e5b564024> in <module>
----> 1 portfolio.sellStock(2,s)

<ipython-input-14-71750cc18cc3> in sellStock(self,Stock)
     56             selling_price = rand_s*Stock.price
     57             self.cash += selling_price*sold_shares
---> 58             num_shares -= sold_shares
     59 
     60     def sellMutualFund(self,percentage_share,MutualFund):

UnboundLocalError: local variable 'num_shares' referenced before assignment

我该如何处理?如果有人能帮助我,我会很高兴。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)