小编Pro*_*ica的帖子

模型和实例方法:会话感知(sqlalchemy)

所以,使用和学习sqlalchemy.

我有一个实例,我需要得到一个值.如果该值存在,则返回它.如果不计算并返回它.

总有人会说"你做错了",总的来说,对改进的投入是值得赞赏的.但是,我正在研究如何在不明确管理会话的情况下完成此操作,因为我正在开发的工作正在开始增长,并且在我想要更新实例时不断管理会话是有问题的.这让我觉得我其实这样做是错误的.

那么如何修复下面的方法以不明确管理会话?

def method(self, session):
        if self.i_needed_this is None:
            self.i_needed_this = calculate(calcutron)
            session.add(self)
            session.commit()
            return self.i_needed_this                        
        else:
            return self.i_needed_this
Run Code Online (Sandbox Code Playgroud)

也许这个问题应该标题为"让实例会话意识到所以我并不总是明确地管理它",如果这是一个愚蠢的问题,至少告诉我为什么用例子并指出我其他人要求更好的地方.

编辑:显然,导入我正在使用作品的会话,它是可用的,所以也许它是一个非问题或未来的,当我更熟练的sqlalchemy.

python sqlalchemy

15
推荐指数
2
解决办法
8923
查看次数

尝试使用Rhino,getEngineByName("JavaScript")在OpenJDK 7中返回null

当我运行以下代码时,engine变量设置为null我使用OpenJDK 7(java-7-openjdk-i386)时.

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class TestRhino {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        try {
            System.out.println(engine.eval("1+1"));
        } catch (ScriptException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

java-6-openjdk与Oracle的运行良好jre1.7.0.知道为什么吗?

我正在使用Ubuntu 11.10.所有JVM都安装在/usr/lib/jvm.

javascript java openjdk rhino javax.script

14
推荐指数
1
解决办法
7446
查看次数

有人可以解释以下内存分配C程序的性能行为吗?

在我的机器上,时间A和时间B交换取决于是否A定义(这改变了calloc调用两个s 的顺序).

我最初将此归因于寻呼系统.奇怪的是,当 mmap用它代替时calloc,情况更加眩晕 - 两个循环都需要相同的时间,如预期的那样.可以看出strace,callocs最终导致两个 mmaps,因此没有返回已经分配的内存魔法.

我在Intel i7上运行Debian测试.

#include <stdlib.h>
#include <stdio.h>
#include <sys/mman.h>

#include <time.h>

#define SIZE 500002816

#ifndef USE_MMAP
#define ALLOC calloc
#else
#define ALLOC(a, b) (mmap(NULL, a * b, PROT_READ | PROT_WRITE,  \
                          MAP_PRIVATE | MAP_ANONYMOUS, -1, 0))
#endif

int main() {
  clock_t start, finish;
#ifdef A
  int *arr1 = ALLOC(sizeof(int), SIZE);
  int *arr2 = ALLOC(sizeof(int), SIZE);
#else
  int *arr2 = ALLOC(sizeof(int), SIZE);
  int …
Run Code Online (Sandbox Code Playgroud)

c unix linux compiler-construction performance

14
推荐指数
3
解决办法
1365
查看次数

TypeError:'generator'对象不可调用

我有一个像这样定义的生成器:

def lengths(x):
    for k, v in x.items():
        yield v['time_length']
Run Code Online (Sandbox Code Playgroud)

它起作用,称之为

for i in lengths(x):
    print i
Run Code Online (Sandbox Code Playgroud)

生产:

3600
1200
3600
300
Run Code Online (Sandbox Code Playgroud)

这是正确的数字.

但是,当我这样称呼时:

somefun(lengths(x))
Run Code Online (Sandbox Code Playgroud)

其中somefun()定义为:

def somefun(lengths):
    for length in lengths():  # <--- ERROR HERE
        if not is_blahblah(length): return False
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

TypeError: 'generator' object is not callable
Run Code Online (Sandbox Code Playgroud)

我有什么误会?

python yield generator

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

什么是DOS中字符表的内存地址?

DOS中字符表的地址是什么,我们可以通过操纵每个字符的像素来创建新的字体和符号?

我知道用BIOS中断来改变它,但是我只需要dos中字符表的内存地址来直接访问.

c memory assembly dos vga

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

旧的C编译器在#ifndef #define上扼流圈

我试图将一些相对现代的C代码移植到较旧的编译器.

看起来,这个编译器(DICE)在第一个头文件和第一次出现这个习语时窒息:

#ifndef SOMETHING
#define SOMETHING

...  

#endif /* SOMETHING */
Run Code Online (Sandbox Code Playgroud)

它在标题的第二行死亡: DCPP: "../../code/someheader.h" L:2 C:0 Error:39 Syntax Error

改变#define SOMETHING 1没有区别.

所以我真的有两个问题,我是否使用DICE使用了错误的选项,或者C程序员在过去使用过ifndef-define等其他成语?

参考文献:

c c-preprocessor

13
推荐指数
1
解决办法
441
查看次数

麻烦使用"brew链接"在PostgreSQL之间切换

我想在Heroku上运行Rails应用程序,所以我使用Homebrew在我的Snow Leopard机器上安装了PostgreSQL.目前,brew将9.1.2安装到/ usr/local/Cellar/postgresql中.经过一些研究,我发现Heroku的免费共享版本需要8.3.x. 虽然homebrew-alt没有8.3,但确实有8.4,所以我将其下载并安装到/ usr/local/Cellar/postgresql8中.然后我确认我能够在每个版本上创建和运行数据库.以为我可以使用"brew [link | unlink]来回切换,我运行"brew unlink postgresql8"然后"brew link postgresql".但是,运行后一个命令会导致此错误:

链接/usr/local/Cellar/postgresql/9.1.2 ...错误:无法链接postgresql另一个版本已经链接:/usr/local/Cellar/postgresql/9.1.2

有没有办法做到这一点(来回切换)或者我误解了应该如何使用brew链接/取消链接?

顺便说一下,"brew list"显示"postgresql"和"postgresql8",所以我不认为我应该说"brew link postgresql9".

谢谢.

postgresql macos homebrew

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

我需要一个具有多个值的键.你会推荐什么样的数据结构?

我有一个字符串数组,里面填充了句子中的单词.

words[0] = "the"
words[1] = "dog"
words[2] = "jumped"
words[3] = "over"
words[4] = "the"
words[5] = "wall."
words[6] = "the"
words[7] = "cat"
words[8] = "fell"
words[9] = "off"
words[10] = "the"
words[10] = "house."
Run Code Online (Sandbox Code Playgroud)

等(愚蠢的例子,但它适用于此)

每个单词都是一个键,它的后续单词就是它的值.所以"over"=>"the".某些键可以有多个值.例如,"the"=>"dog"|| "墙"|| "猫"|| "屋".该值是从该密钥的值中随机选择的.

当程序运行时,它会随机选择一个单词并生成一个句子.所以它可能是这样的:"猫掉了狗".

我尝试实现一个map(map myMap;),但是每个键只允许一个值(我认为).

希望我解释得对.

c++ key data-structures

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

如何在Linux上用C++计算SHA-512哈希?

是否有可用于在Linux上计算SHA-512哈希值的标准库或常用库?

我正在寻找一个C或C++库.

c c++ linux hash sha512

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

在Guzzle中以编程方式构建查询字符串?

在我的PHP Guzzle客户端代码中,我有类似的东西

$c = new Client('http://test.com/api/1.0/function');

$request = $c->get('?f=4&l=2&p=3&u=5');
Run Code Online (Sandbox Code Playgroud)

但我希望有类似的东西:

$request->set('f', 4);
$request->set('l', 2);
$request->set('p', 3);
$request->set('u', 5);
Run Code Online (Sandbox Code Playgroud)

在Guzzle有可能吗?从文档和随机谷歌搜索它似乎是,但我找不到确切的方式.

php guzzle

12
推荐指数
2
解决办法
7536
查看次数