Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行;“类”;使用多输入-Python_Python - Fatal编程技术网

执行;“类”;使用多输入-Python

执行;“类”;使用多输入-Python,python,Python,我这里有一个简化的代码。(原始代码太多了,放不起来) 我想像这样执行程序(这样执行没有问题): 但是,有超过3只股票,所以我需要“for loop”来迭代这个资产列表 我做到了: Assets = ["stock_one", "stock_two", "stock_three"] for asset in Assets: asset = Stock(asset) asset.Initiate_sequence() # I

我这里有一个简化的代码。(原始代码太多了,放不起来)

我想像这样执行程序(这样执行没有问题):

但是,有超过3只股票,所以我需要“for loop”来迭代这个资产列表

我做到了:

Assets = ["stock_one", "stock_two", "stock_three"]
for asset in Assets:
    asset = Stock(asset)
    asset.Initiate_sequence() # Initialize all the assets

while True:                   # Loop each asset analysis module every 10 seconds
    for asset in Assets:
        asset.Analysis()
    time.sleep(10)
现在它给出了错误

Initiate Program
Initiate Program
Initiate Program
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-12-420b1a82343b> in <module>
      6 while True:                   # Loop each asset analysis module every 10 seconds
      7     for asset in Assets:
----> 8         asset.Analysis()
      9     time.sleep(10)
     10 

AttributeError: 'str' object has no attribute 'Analysis'

出于某种原因,它卡住了,并且没有无缘无故地继续执行,有什么想法吗?

您正在尝试覆盖循环变量
资产
,它在Python中不起作用

如果在铸造
asset=Stock(asset)
后检查变量
Assets
,您将看到它只是字符串,而不是您试图创建的
Stock
实例。这就是为什么您得到的
'str'对象没有属性'Analysis'
错误

相反,我将执行以下操作:

#变量和类方法/属性应为小写
#只有类是大写的
资产=[“股票一”、“股票二”、“股票三”]
库存=列表(地图(库存、资产))
#上面这一行(大部分)相当于
#股票=[资产中资产的股票(资产)]
#或
#股票=[]
#对于资产中的资产:
#股票。追加(股票(资产))
尽管如此:
对于库存:
股票分析()
时间。睡眠(10)

由于某种原因,它卡住了,并且没有理由继续执行,有什么想法吗?(这个分析模块需要一起执行,然后休眠,我只做了一点更改)我错误地将sleep语句放在了内部循环中,而不是外部循环中(现在已经更正了)。这可能是问题所在吗?我还注意到,如果我们对
股票
进行多次迭代(现已修复),我用来创建
股票
的生成器将无法工作。太棒了!非常感谢。
Assets = ["stock_one", "stock_two", "stock_three"]
for asset in Assets:
    asset = Stock(asset)
    asset.Initiate_sequence() # Initialize all the assets

while True:                   # Loop each asset analysis module every 10 seconds
    for asset in Assets:
        asset.Analysis()
    time.sleep(10)
Initiate Program
Initiate Program
Initiate Program
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-12-420b1a82343b> in <module>
      6 while True:                   # Loop each asset analysis module every 10 seconds
      7     for asset in Assets:
----> 8         asset.Analysis()
      9     time.sleep(10)
     10 

AttributeError: 'str' object has no attribute 'Analysis'
Assets = ["stock_one", "stock_two", "stock_three"]
stocks = map(Stock, Assets)

while True:
    for stock in stocks:
        stock.Analysis()
    time.sleep(10)