我是一名C程序员,我对Python非常了解.但是我仍然有一些问题让我开始思考Python的OO真棒.
这是我目前的设计问题:
最终"产品"是一个用Python创建的JSON数据结构(并传递给Javascript代码),包含不同类型的数据,如:
{ type:url, {urlpayloaddict) }
{ type:text, {textpayloaddict}
...
Run Code Online (Sandbox Code Playgroud)
我的Javascript知道如何解析和显示每种类型的JSON响应.
我很满意这个设计.我的问题来自于在Python代码中处理这些数据.
我从各种来源获取数据:MySQL,表查找,对Web服务的API调用......基本上,我应该创建一个超类responseElement并为每种类型的响应专门化它,然后传递一个列表Python代码中的这些对象或者我应该简单地传递包含键值对中的响应数据的字典列表.答案似乎导致了显着不同的实现.
我有点不确定我是否太过快乐了?
在Process Explorer中检查进程时,有多个页面错误时它意味着什么?该应用程序正在处理相当多的数据,并且UI响应不是很快.是否有可以减少或消除页面错误的代码优化?增加系统的物理RAM会有所不同吗?
我在 Python C API 上有点挣扎。我正在调用 python 方法以大约 60hz 进行一些游戏 AI。它大部分时间都可以工作,但每隔一秒左右,对 PyEval_CallObject 的调用就会产生一个 NULL 返回值。如果我正确检测到错误并继续循环,那么下一秒左右一切都会好起来,于是错误再次发生。
我怀疑我在引用计数方面做错了什么,但我无法弄清楚它是什么:
int script_do_ai(struct game_data_t* gd)
{
PyObject *pAiModule, *pResult;
float result=0.0;
pResult = NULL;
pAiModule = PyImport_Import(PyString_FromString("ai_script"));
Run Code Online (Sandbox Code Playgroud)
是的,我每次迭代都会导入模块。那有必要吗?如果我将 pAiModule 存储为全局变量,大约一秒钟后就会发生严重崩溃。
pResult = PyEval_CallObject(PyObject_GetAttrString(pAiModule, "do_ai"),
Py_BuildValue("f", gd->important_float))
if (pResult != NULL)
{
PyArg_Parse(pResult, "f", &result);
Py_DECREF(pResult);
ConquerEnemies(result); //you get the idea
}
else //this happens every 75 or so iterations thru the loop
{
if (PyErr_ExceptionMatches(PyExc_SomeException)) //? not sure what to do here
{
Run Code Online (Sandbox Code Playgroud)
我还没有找到如何提取异常,或者......没有对 …
我想拦截任何回传在当前页面之前它发生.我想在回发服务之前做一些自定义操作.任何想法如何做到这一点?
我正在尝试使用std:getline()但遇到一个奇怪的运行时错误:
malloc:*对象0x10000a720的错误:未释放指针被释放*在malloc_error_break中设置断点以进行调试
这是产生此错误的代码:
//main.cpp
#include <iostream>
#include <sstream>
int main (int argc, char * const argv[])
{
std::istringstream my_str("demo string with spaces");
std::string word;
while (std::getline(my_str, word, ' ')) {
std::cout << word << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在每个单词之前我都会收到此错误.从评论中看起来似乎是OSX/XCode特定的错误.有什么提示吗?
更新: 错误仅在调试模式下打印.如果我在发布模式下构建此代码,一切都很好.
更新2: 可以在此处找到有关该问题的更多信息.
解:
组
_GLIBCXX_FULLY_DYNAMIC_STRING = 1
在目标信息构建选项卡中的预处理器宏中.
系统信息:
OSX 10.6.2 | XCode 3.2 | g ++ 4.2 | 调试i386的配置
如何在ASP.NET MVC中"正确"从系统中删除用户?
我有一个客户控制器,大部分都与默认的帐户控制器绑定,但是当删除它们时,从Customers表中删除是不够的,因为用户名现在实际上是"保留"的.
我想在将它们提交到存储库之前以某种方式进行修改(实际上格式化代码格式化程序中的文件).我已经从Precommit示例中找到了(使用guest作为名称而没有密码)如何在python中编写.但是我想知道的是如何获取要提交的文件列表以及其他命令行参数.更多的事情我更喜欢在C#而不是Python或任何其他脚本中编写自己的预提交钩子.
几点我会写一个将格式化的exe,但我想要提交的文件列表如何使用svn配置它.
我不太确定这是否可行,但我对MATLAB的理解肯定会更好.
我有一些代码我希望矢量化,因为它在我的程序中造成了相当大的瓶颈.它是优化程序的一部分,它具有许多可能的短期平均(STA),长期平均(LTA)和灵敏度(OnSense)配置.
时间是矢量格式,FL2onSS是主数据(一个Nx1双),FL2onSSSTA是它的STA(NxSTA双),FL2onSSThresh是它的阈值(NxLTAxOnSense double)
我们的想法是计算一个红色警报矩阵,该矩阵将是4D - 在整个程序的其余部分使用的alarmStatexSTAxLTAxOnSense.
Red = zeros(length(FL2onSS), length(STA), length(LTA), length(OnSense), 'double');
for i=1:length(STA)
for j=1:length(LTA)
for k=1:length(OnSense)
Red(:,i,j,k) = calcRedAlarm(Time, FL2onSS, FL2onSSSTA(:,i), FL2onSSThresh(:,j,k));
end
end
end
Run Code Online (Sandbox Code Playgroud)
我现在已经重复了一个函数,试图从中获得更高的速度,但显然如果整个事物可以被矢量化会更好.换句话说,如果有更好的解决方案,我不需要保留该功能.
function [Red] = calcRedAlarm(Time, FL2onSS, FL2onSSSTA, FL2onSSThresh)
% Calculate Alarms
% Alarm triggers when STA > Threshold
zeroSize = length(FL2onSS);
%Precompose
Red = zeros(zeroSize, 1, 'double');
for i=2:zeroSize
%Because of time chunks being butted up against each other, alarms can
%go off when they shouldn't. To fix this, timeDiff has …Run Code Online (Sandbox Code Playgroud) c# ×3
python ×2
asp.net ×1
asp.net-mvc ×1
c ×1
c++ ×1
controller ×1
getline ×1
java ×1
json ×1
login ×1
macos ×1
malloc ×1
matlab ×1
oop ×1
optimization ×1
performance ×1
postback ×1
python-c-api ×1
sms ×1
sql ×1
tortoisesvn ×1
xcode ×1