小编Nar*_*ser的帖子

从字符串创建函数对象

问题:有没有办法在python中使用字符串创建一个函数对象


信息:我正在开发一个项目,我将数据存储在sqlite3服务器后端.没什么可疯狂的.DAL类通常是通过代码生成完成的,因为代码是如此令人难以置信的平凡.但这给了我一个想法.在python中,当找不到属性时,如果定义函数" getattr ",它将在错误之前调用它.所以我想通过解析器和逻辑树的方式,我可以在第一次调用时动态生成我需要的代码,然后将函数对象保存为本地属性.例如:

DAL.getAll()

#getAll() not found, call __getattr__

DAL.__getattr__(self,attrib)#in this case attrib = getAll

##parser logic magic takes place here and i end up with a string for a new function

##convert string to function

DAL.getAll = newFunc

return newFunc
Run Code Online (Sandbox Code Playgroud)

我已经尝试过编译功能,但exec和eval在能够完成这种壮举方面远非令人满意.我需要能够实现多种功能的东西.还有另一种方法可以做到这一点,除了那些不涉及将其写入磁盘?我再次尝试动态创建一个函数对象.

PS:是的,我知道这有可怕的安全和稳定性问题.是的,我知道这是一种非常有效的方法.我关心的?没有.这是一个概念证明."可以python这样做吗?它能动态创建一个函数对象 "是我想知道的,而不是一些优越的选择.(尽管在你回答了手头的问题之后可以自由地选择优秀的替代方案)

python code-generation function-object

8
推荐指数
1
解决办法
1万
查看次数

有一个简单的方法来制作Windows服务吗?

问题:有没有办法让程序在没有创建Windows服务的长期痛苦任务的情况下运行,或者是否有简单的方法来创建简单的服务?


信息:我正在为大学开展一个小项目,这是一个简单的分布式处理程序.我将利用目前完全闲置的校园电脑,制作我自己的小型超级计算机.但要做到这一点,我需要在我的目标机器上运行客户端.

通过互联网上的一点点,我发现我需要的是一项服务,我也发现这并不像制作计划任务或将.bat文件放入启动文件夹那么简单.

我不需要太多.如果我可以让它调用"python cClient.py"我完全设置.是否有捷径可寻?喜欢在注册表中添加一些键在哪里?或者我是否必须完成微软为建立服务所做的整个歌舞仪式?

windows windows-services

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

运行应用程序命令以打开终端

问题:您在ubuntu上的"运行应用程序"框中输入什么命令来打开终端?


信息:我在上网本上遇到了可怕的驱动程序问题.我可能能够解决其中的一些问题,如果我可以到达终端,但我只有我的键盘,没有鼠标,所以我需要知道输入应用程序的输入命令(我可以使用alt -f2)打开终端.

terminal ubuntu

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

python sqlite3更新不更新

问题:为什么这个sqlite3语句没有更新记录?


信息:

cur.execute('UPDATE workunits SET Completed=1 AND Returns=(?) WHERE PID=(?) AND Args=(?)',(pickle.dumps(Ret),PID,Args))
Run Code Online (Sandbox Code Playgroud)

我正在使用python和sqlite3.这个语句不会抛出错误,它似乎就是被忽略了.由于测试原因我在下面包括:

cur.execute('SELECT * FROM workunits WHERE PID=(?) AND Args=(?)',(PID,Args))
Run Code Online (Sandbox Code Playgroud)

哪个记录就好了.但记录没有与腌制ret的新值一起更新.它仍然是你.我无法弄清楚为什么.我的where声明似乎有效.我的语法似乎是正确的,因为没有抛出错误.我对于为什么它不起作用我一无所知.

python sqlite

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

0(3):错误C1013:函数"main"已定义为0(4)

我已经谷歌了一点,我无法弄清楚出了什么问题.我的着色器:

#version 120

attribute vec2 coord2d;
void main(void) 
{
    gl_Position = vec4(coord2d, 0.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

我知道这个着色器有效,但当我尝试链接程序时,我得到:

glLinkProgram:Vertex info
-----------
0(3) : error C1013: function "main" is already defined at 0(4)
Run Code Online (Sandbox Code Playgroud)

我已经检查过以确保viles正确地进入内存而不是内存.他们编译得很好.出现问题是连接步骤.我对于什么感到无能为力,而且我已经在这方面打了很长时间.有小费吗?

编辑:

这是我用来创建着色器的代码.它一直到条件,它实际上完全完成执行,但日志打印出你在上面看到的.

GLuint updateProg()
{
    prog = glCreateProgram();
    if (vs == 0 || fs == 0) return 0;
    glAttachShader(prog, vs);
    glAttachShader(prog, fs);
    int link_ok;
    glLinkProgram(prog);
    glGetProgramiv(prog, GL_LINK_STATUS, &link_ok);
    if (!link_ok) 
    {
        fprintf(stderr, "glLinkProgram:");
        print_log(prog);
        return 0;
    }
    return prog;
}
Run Code Online (Sandbox Code Playgroud)

opengl glsl

5
推荐指数
3
解决办法
4314
查看次数

在OpenGL和GLSL中进行点渲染

问题:如何使用GLSL在openGL中渲染点?


信息:前段时间我在python中进行了重力模拟,并使用了blender进行渲染.它看起来像这样.作为练习,我将其移植到openGL和openCL.我想,我实际上已经在openCL中工作了.直到我花了相当多的时间在openCL工作,才意识到很难知道这是否正确而无法看到结果.所以我开始玩openGL.我在wikibooks上关注了openGL GLSL教程,内容非常丰富,但它没有涵盖点或粒子.

我不知道从哪里开始.我找到的大多数教程都是针对openGL默认程序的.我想用GLSL来做.我仍然对这一切都很陌生,所以请原谅我的潜在愚蠢,如果答案就在我的鼻子底下.我正在寻找的是如何在相互融合的点周围制作光晕.我对如何在片段着色器中执行此操作有一个大致的想法,但据我所知,我只能抓取由我的点创建的多边形所包围的像素.我确信有一种方法可以解决这个问题,但如果不这样做会很疯狂,但我的新生儿中的我是无能为力的.有人可以给我一些方向吗?谢谢.

opengl glsl

4
推荐指数
1
解决办法
8522
查看次数

为什么第二次调用glBindBuffer?

我正在阅读教程中的内容,最后我将了解如何使用Vertex Buffers,我看到我生成的顶点缓冲区并且一次调用了glBindBuffer,我必须第二次绑定:

glBindBuffer(GL_ARRAY_BUFFER, vbo_triangle);
Run Code Online (Sandbox Code Playgroud)

我仍然是openGL的新手(比如3天)所以我试图围绕着很多这些东西是如何工作的.我花了大部分时间在khronos或opengl.org上阅读有关命令的内容,但我无法弄清楚为什么这个命令会被调用两次.任何提示?谢谢.

opengl

3
推荐指数
2
解决办法
5237
查看次数

找到lGL

问题:为什么不能找到-lGL?


信息:我今天早上在我的上网本上按照本网站的指导编写了一个程序,编译运行没有问题.然后我继续使用完全相同的代码并尝试在我的桌面上运行它.我的上网本编译的版本工作,但它对我大吼大叫,因为我的上网本没有显卡,而我的桌面也是如此,所以编辑得不是很好.还是跑了.

但是当我试图在我的桌面上编译它时失败了.起初它说"致命错误:GL/gl.h:没有这样的文件或目录"所以我想"等等,我认为opengl带有ubuntu,我的意思是我的上网本工作,也许我安装了一些东西而忘了它"所以我跑过apt并拉下了我认为可能有帮助的所有opengl.但是盯着212 - 1278个包(取决于我搜索的单词)可能会或可能不会与opengl相关,我不知道还有什么可以尝试.我遇到了第一个问题,但现在它抱怨它找不到-lGL,这看起来很奇怪.

任何提示,技巧,评论,讽刺?我的最终目标是能够从命令行编译c代码,我一直在使用我从上述网站获得的命令:

gcc -o gltest gltest.c -lX11 -lGL -lGLU
Run Code Online (Sandbox Code Playgroud)

我运行Ubuntu 11.04桌面,64位.Nvidia GTX465.

compiler-construction opengl ubuntu

0
推荐指数
1
解决办法
3026
查看次数