我的小Python脚本使用库来处理一些相对较大的数据.此任务的标准算法是动态编程算法,因此可能是"引擎盖下"的库分配了一个大型数组来跟踪DP的部分结果.实际上,当我尝试给它相当大的输入时,它会立即给出一个MemoryError.
最好不要深入挖掘库的深度,我想弄清楚是否值得在具有更多内存的不同机器上尝试此算法,或者尝试减少我的输入大小,或者如果它是丢失的原因我试图使用的数据大小.
当我的Python代码抛出时MemoryError,是否有一种"自上而下"的方式来调查我的代码试图分配的内存大小是什么导致了错误,例如通过检查错误对象?
如果我有一个,vector<bool> vec_bool那么我无法使用|=赋值运算符修改向量的内容.就是这条线
vec_bool[0] |= true;
vec_bool[0] |= vec_bool[1];
Run Code Online (Sandbox Code Playgroud)
给出编译错误,而行
bool a = false;
a |= true;
a |= vec_bool[0];
vec_bool[0] = vec_bool[0] | vec_bool[1];
vec_bool[0] = vec_bool[0] || vec_bool[1];
vector<int> vec_int(3);
vec_int[0] |= vec_int[1];
Run Code Online (Sandbox Code Playgroud)
不要.这是什么原因?
给出的错误(通过gcc)是:
TEST.CPP:21:17:错误:不对应的 '运营商| ='(操作数的类型是 '的std ::矢量::参考{又名的std :: _ Bit_reference}' 和 '布尔')
我正在使用 Clang 编译 C++ 代码。( Apple clang version 12.0.5 (clang-1205.0.22.11))。
如果您拼写错误变量,Clang 可以给出提示:
#include <iostream>
int main() {
int my_int;
std::cout << my_it << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
spellcheck-test.cpp:5:18: error: use of undeclared identifier 'my_it'; did you mean 'my_int'?
std::cout << my_it << std::endl;
^~~~~
my_int
spellcheck-test.cpp:4:9: note: 'my_int' declared here
int my_int;
^
1 error generated.
Run Code Online (Sandbox Code Playgroud)
我的问题是:
Clang 使用什么标准来确定何时建议另一个变量?
我的实验表明它相当复杂:
int my_in;),它不会给出建议my_it.size()),则不会给出建议我有一个Python类(它实际上不是我的,它来自一个包,所以我不想编辑这个).最小的例子(不切实际):
import os
class SuperClass:
def __init__(self):
# Do something, for example
self.a = 0
pass
def from_file(filename):
# Do something with the file,
# use it to create superclass
# instance obj. For example...
obj = SuperClass()
obj.a = os.stat(filename).st_size
return obj
Run Code Online (Sandbox Code Playgroud)
现在我想创建这个超类的子类,它的初始化总是来自一个文件 - 也就是说,我想做类似的事情
class SubClass(SuperClass):
def __init__(self, filename):
self = SuperClass.from_file(filename)
Run Code Online (Sandbox Code Playgroud)
这不起作用(我没想到):我没有得到异常但是子类没有正确初始化.例如,如果SuperClass有一些实例值a,总是设置,那么
new_subclass_instance = SubClass('/filepath/file')
print(new_subclass_instance.a)
Run Code Online (Sandbox Code Playgroud)
会给一个AttributeError: type object 'SubClass' has no attribute 'a'.
如何使用from_file父类中的函数初始化?