小编Sai*_*irl的帖子

如何将django QueryDict更改为Python Dict?

让我假装我有以下QueryDict:

<QueryDict: {u'num': [0], u'var1': [u'value1', u'value2'], u'var2': [u'8']}>
Run Code Online (Sandbox Code Playgroud)

我想要一本字典,例如:

{'num': [0], 'var1':['value1', 'value2'], 'var2':['8']}
Run Code Online (Sandbox Code Playgroud)

(我不在乎unicode符号是u保留还是继续.)

如果我这样做queryDict.dict(),正如django网站所建议的那样,我会失去属于的额外值var1,例如:

{'num': [0], 'var1':['value2'], 'var2':['8']}
Run Code Online (Sandbox Code Playgroud)

我在想这样做:

myDict = {}
for key in queryDict.iterkeys():
    myDict[key] = queryDict.getlist(key)
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

python django

97
推荐指数
6
解决办法
7万
查看次数

firstPrivate和lastprivate与OpenMP中的private子句有何不同?

我看过官方的定义,但我仍然很困惑.

firstprivate:指定每个线程应该有自己的变量实例,并且应该使用变量的值初始化变量,因为它存在于并行构造之前.

对我来说,这听起来很像私人.我找了一些例子,但我似乎不明白它的特殊性或如何使用它.

lastprivate:指定将封闭上下文的变量版本设置为等于执行最终迭代(for-loop构造)或最后一个部分(#pragma sections)的任何线程的私有版本.

由于以下示例,我觉得我更了解这一点:

#pragma omp parallel
{
   #pragma omp for lastprivate(i)
      for (i=0; i<n-1; i++)
         a[i] = b[i] + b[i+1];
}
a[i]=b[i];
Run Code Online (Sandbox Code Playgroud)

所以,在这个例子中,我理解lastprivate允许i在循环之外作为最后一个值返回.

我今天刚开始学习OpenMP.

openmp

69
推荐指数
2
解决办法
5万
查看次数

如何检查枚举值是否有效?

我正在读取enum二进制文件中的值,并想检查该值是否真的是enum值的一部分.我该怎么做?

#include <iostream>

enum Abc
{
    A = 4,
    B = 8,
    C = 12
};

int main()
{
    int v1 = 4;
    Abc v2 = static_cast< Abc >( v1 );

    switch ( v2 )
    {
        case A:
            std::cout<<"A"<<std::endl;
            break;
        case B:
            std::cout<<"B"<<std::endl;
            break;
        case C:
            std::cout<<"C"<<std::endl;
            break;
        default :
            std::cout<<"no match found"<<std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

我是否必须使用switch操作员或有更好的方法吗?

编辑

我设置了枚举值,不幸的是我无法修改它们.更糟糕的是,它们不是连续的(它们的值为0,75,76,80,85,90,95,100等)

c++ enums

44
推荐指数
6
解决办法
6万
查看次数

TaskCompletionSource - 尝试理解无线程异步工作

我试图了解其目的TaskCompletionSource及其与异步/无线工作的关系.我想我有一般的想法,但我想确保我的理解是正确的.

我首先开始研究任务并行库(TPL),以确定是否有一种很好的方法来创建自己的无线/异步工作(比如说你试图提高ASP.NET站点的可伸缩性)以及对TPL的理解看起来它将来会非常重要(async/ await).这导致我TaskCompletionSource.

从我的理解来看,添加TaskCompletionSource到你的一个类似乎没有做太多的编码异步; 如果您仍在执行同步代码,则对代码的调用将被阻止.我认为微软API也是如此.例如,假设在DownloadStringTaskAsync关闭的WebClient类,它们最初在做任何安装/同步代码将被阻塞.您正在执行的代码必须在某个线程上运行,无论是当前线程还是您必须分拆一个新线程.

因此TaskCompletionSource,当您调用asyncMicrosoft的其他调用时,您可以在自己的代码中使用,这样您的类的客户端就不必为您的类创建一个新的线程来阻止它.

不确定Microsoft如何在内部执行异步API.例如,for .Net 4.5 有一种新async方法SqlDataReader.我知道有IO完成端口.我认为这可能是大多数C#开发人员不会使用的低级抽象(C++?).不确定IO完成端口是否适用于数据库或网络调用(HTTP),或者它是否仅用于文件IO.

所以问题是,我理解正确吗?是否有某些我错误表示的事情?

asynchronous task-parallel-library

35
推荐指数
2
解决办法
2万
查看次数

有什么方法可以将模拟方法重置为原始状态? - Python Mock - 模拟1.0b1

我有以下简化的类我在嘲笑:

class myClass(object):
    @staticmethod
    def A():
        #...

    def check(self):
        #code...
        value = self.A()
        #more code...
Run Code Online (Sandbox Code Playgroud)

在我的第一次测试中,我只模拟方法A.

from django.test import TestCase
from mock import MagicMock
import myClass

class FirstTest(TestCase):

def setUp(self):
    myClass.A = MagicMock(return_value = 'CPU')

def test(self):
    #some tests 
    myClassObj = myClass()
    myClassObj.check()
Run Code Online (Sandbox Code Playgroud)

在我的第二次测试中,我模拟了整个检查方法:

from django.test import TestCase
from mock import MagicMock
import myClass

class SecondTest(TestCase):

def setUp(self):
    myClass.check = MagicMock(return_value = someObject)

def test(self):
    #some tests 
    myClassObj = myClass()
    myClassObj.check()
Run Code Online (Sandbox Code Playgroud)

现在我的第一次测试中的断言失败了,因为它不是在内部调用check()和嘲笑,而是从第二次测试中调用完全嘲笑.A()check()check()

有没有办法在测试后清除并将方法设置为"正常"?我myClass.check.reset_mock()已经尝试了,但它似乎没有做任何事情.移动我的测试顺序也没有做任何事情. …

python mocking python-mock

31
推荐指数
2
解决办法
2万
查看次数

如何使用jQuery设置Django网站

我不知道为什么,但我无法弄清楚如何在我的网站上激活jQuery.所有做教程的网站'在Django上开始jQuery'都是从JQuery开始在他们的网站上工作的.无论如何,我没有下载并将其放在我的文件夹中,而是决定采用欺骗手段并使用谷歌.因此,在我的基页中,我有以下代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js">
</script>
Run Code Online (Sandbox Code Playgroud)

一切都很好,直到我不得不添加一些库.如何设置我自己的jQuery以便它可以与我的模板一起使用?

django jquery

24
推荐指数
3
解决办法
4万
查看次数

在VS 2010中加入:未解析的外部符号__imp__glewInit

我正在按照红皮书学习OpenGL.当我到第90页左右时,我需要使用glGenBuffers(); 然后我需要安装"glew".按照www.cs.uiowa.edu/~cwyman/classes/common/howto/winGLUT.html中的步骤操作

我下载glew.zipglew.sourceforge.net/,并解压缩文件.

我放

  • glew.hC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include
  • glew32.libC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib,和
  • glew32.dllC:\Windows\System32

之后,我在VS 2010中构建我的项目,并在其中Linker->input添加依赖项glew32.lib.

但是当我构建它时,我有错误

unresolved external symbol __imp__glewInit

我花了一整天时间来搜索解决方案,但没有找到解决方案.

希望有人可以帮助我.

visual-studio-2010

17
推荐指数
3
解决办法
3万
查看次数

错误:无法打开显示:localhost:0.0 - 尝试从CentOS 6.2 64位打开Firefox并在Win7上显示

我在Windows7机器上,我试图让firefox在centOS机器上打开,但是显示在我当前的屏幕上.firefox在终端中输入时,我收到以下错误:

Error: cannot open display: localhost:0.0
Run Code Online (Sandbox Code Playgroud)

为了设置显示器,我使用了命令

$ export DISPLAY=localhost:0.0
Run Code Online (Sandbox Code Playgroud)

有些网站建议使用以下内容,但它也不起作用:

$ export DISPLAY=:0.0
Run Code Online (Sandbox Code Playgroud)

我正在使用PuTTY,我Enable X11 forwarding选中了复选框,XMing正在Windows上运行.此外,centOS文件上的sshd_config似乎也正确设置:

$ cat /etc/ssh/sshd_config |grep -i x11
#X11Forwarding no
X11Forwarding yes
#X11DisplayOffset 10
X11UseLocalhost yes
Run Code Online (Sandbox Code Playgroud)

我查看了很多页面并搜索了StackOverflow,但没有一个能够以任何方式帮助我.先感谢您.

x11 x11-forwarding

13
推荐指数
2
解决办法
11万
查看次数

如何在MatPlotLib中绘制散点/绘图的平均线?

我的数据如下:

x = [3,4,5,6,7,8,9,9]
y = [6,5,4,3,2,1,1,2]
Run Code Online (Sandbox Code Playgroud)

我可以获得以下两个图表.

在此输入图像描述

在此输入图像描述

但是,我想要的是这个(沿途所有点的平均值): 在此输入图像描述

在matplotlib中有可能吗?或者我是否必须手动更改列表并以某种方式创建:

x = [3,4,5,6,7,8,9]
y = [6,5,4,3,2,1,1.5]
Run Code Online (Sandbox Code Playgroud)

相关代码

ax.plot(x, y, 'o-', label='curPerform')
x1,x2,y1,y2 = ax.axis()
x1 = min(x) - 1 
x2 = max(x) + 1
ax.axis((x1,x2,(y1-1),(y2+1)))
Run Code Online (Sandbox Code Playgroud)

python matplotlib

11
推荐指数
2
解决办法
4万
查看次数

cudamemcpy错误:"启动超时并被终止"

我的代码是一个并行的implmentation,计算pi的第n位数.当我完成内核并尝试将内存复制回主机时,我得到"启动超时并被终止"错误.我使用此代码对每个cudamalloc,cudamemcpy和kernal启动进行错误检查.

std::string error = cudaGetErrorString(cudaGetLastError());
printf("%s\n", error);
Run Code Online (Sandbox Code Playgroud)

这些调用说一切都很好,直到从内核返回后的第一个cudamemcpy调用.错误发生在"cudaMemcpy(avhost,avdev,size,cudaMemcpyDeviceToHost)"行中; 在主要.任何帮助表示赞赏.

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#define mul_mod(a,b,m) fmod( (double) a * (double) b, m)
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
/* return the inverse of x mod y */
__device__ int inv_mod(int x,int y) {
  int q,u,v,a,c,t;

  u=x;
  v=y;
  c=1;
  a=0;
  do {
    q=v/u;

    t=c;
    c=a-q*c;
    a=t;

    t=u;
    u=v-q*u;
    v=t;
  } while (u!=0);
  a=a%y;
  if (a<0) a=y+a;
  return a;
}
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
/* return the inverse of u mod v, if v is odd …
Run Code Online (Sandbox Code Playgroud)

memory timeout cuda

9
推荐指数
1
解决办法
9666
查看次数