【发布时间】:2021-06-22 20:41:36
【问题描述】:
几天前我发布了a question 关于numba 和strings 的使用。有人好心地提出了一个解决方案——它有效,但产生的警告多于实际输出。重温我的帖子,我意识到我把它弄得比我应该做的要复杂得多,这样做我隐藏了我猜想的实际问题。这次我会尽量做到简约。
我正在尝试将字符串列表传递给_init_() 并使其成为该类的属性。我已经尝试了无数次和方法。到目前为止,我得到的最佳方法如下:
from numba import types
from numba.experimental import jitclass
spec = [('S', types.ListType(types.unicode_type)), \
('Scopy', types.ListType(types.unicode_type))]
@jitclass(spec)
class Test(object):
def __init__(self, S):
#self.Scopy = S.copy()
#print(self.Scopy)
return print(S)
A = ["a", "b"]
Test(A)
上面的脚本产生一个输出行(如预期的那样)和(不夸张)十几个警告行。
当我取消注释__init__() 的前两行时,问题就开始了,这两行将列表的副本创建为类属性并打印它。现在发生错误并且没有产生有效的输出。我想知道怎么了。我尝试了几种方法及其组合,但没有任何效果。我怀疑.copy() 是问题所在,因为如果我将前两行注释掉,脚本就可以工作(但是效果很差)。
Python 3.8.5、numba 0.53.0、Xubuntu 20.04-64。
感谢您的帮助。
【问题讨论】:
标签: python-3.x numba