小编bod*_*ydo的帖子

何时在Python中使用弱引用?

任何人都可以解释弱引用的用法吗?

文件没有精确地解释它,它只是说,GC可以摧毁通过随时弱引用链接到对象.那么一个物体可以随时消失的重点是什么?如果我需要在消失后立即使用它怎么办?

能用一些好的例子来解释一下吗?

谢谢

python weak-references

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

我可以依赖Referer HTTP标头吗?

我可以Referer在Web应用程序中依赖HTTP标头吗?我想检查用户是否来自特定的域/网页,如果他或她做了,那么相应地更改我的网站的布局.

我知道人们可以Referer在他们的浏览器中禁用.任何想法用户经常这样做?我可以依靠Referer99%的存在吗?

http-referer http-headers

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

如何在SQLAlchemy中增加一个计数器

假设我有一个表tags,其中有一个字段count,表示items已使用给定标签标记了多少.

在使用现有标记添加新项目后,如何在SQLAlchemy中增加此计数器?

使用纯SQL我会执行以下操作:

INSERT INTO `items` VALUES (...)
UPDATE `tags` SET count=count+1 WHERE tag_id=5
Run Code Online (Sandbox Code Playgroud)

但是我如何count=count+1在SQLAlchemy中表达?

谢谢,Boda Cydo.

python sqlalchemy

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

如何在C中的for(;;)循环中初始化几个变量?

我以为可以在for循环中初始化几个变量:

for (int i = 0, char* ptr = bam; i < 10; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

但我发现这是不可能的.GCC给出以下错误:

错误:'char'之前的预期unqualified-id

你是否真的无法在for循环中初始化不同类型的变量?

c loops for-loop initialization

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

在C++中初始化静态数据成员的正确方法是什么(98,11和14)

static在C++中初始化数据成员的正确方法是什么?我也对它从C++ 98,C++ 11到C++ 14的变化感兴趣.

这是一个例子:

// bufferedOutput.h
class BufferedOutput
{
 // Static member declaration.
 static long bytecount;
};

// bufferedOutput.cpp
long BufferedOutput::bytecount = 50;
Run Code Online (Sandbox Code Playgroud)

还有其他方法来初始化static数据成员吗?

c++ static-members c++11 c++98 c++14

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

如何在Python中编写抽象语法树的访问者模式?

我的同事建议我写一个访客模式来导航AST.任何人都可以告诉我更多我将如何开始写它?

据我所知,AST中的每个Node都有visit()方法(?)以某种方式被调用(从哪里?).这总结了我的理解.

为了简化一切,假设我有节点Root,Expression,Number,Op和树是这个样子:

       Root
        |
       Op(+)
      /   \
     /     \
 Number(5)  \
             Op(*)
             /   \
            /     \
           /       \
       Number(2)   Number(444)
Run Code Online (Sandbox Code Playgroud)

任何人都可以想到访问者模式将如何访问此树以产生输出:

 5 + 2 * 444
Run Code Online (Sandbox Code Playgroud)

谢谢,Boda Cydo.

python compiler-construction parsing visitor abstract-syntax-tree

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

IFS =在这个bash循环中做了什么:`cat file | 而IFS =读-r线; 做...完成

我正在学习bash,我看到了这个结构:

cat file | while IFS= read -r line;
do
    ...
done
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释一下IFS=吗?我知道它是输入字段分隔符,但为什么它被设置为空?

bash ifs

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

如何在递增字段时确保MySQL数据库中没有竞争条件?

当两个连接想要更新同一记录时,如何防止MySQL数据库中的竞争条件?

例如,连接1想要增加"尝试"计数器.而第二个连接想要做同样的事情.两个连接SELECT"尝试"计数,增加值,并且两次UPDATE"尝试"增加值.突然"尝试"只是"尝试+ 1"而不是"尝试+ 2",因为两个连接都获得相同的"尝试"并将其递增1.

如何解决这个问题呢?

mysql race-condition

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

是否可以将C++智能指针与C的malloc一起使用?

我的一些代码仍然使用malloc而不是new.原因是因为我害怕使用,new因为它抛出异常,而不是返回NULL,我可以很容易地检查.结束语每次调用newtry{}catch(){}也看起来并不好.而在使用时malloc我可以做到if (!new_mem) { /* handle error */ }.

所以我有一个问题.我可以同时使用智能指针malloc吗?

就像是:

SmartPointer<Type> smarty = malloc(sizeof(Type));
Run Code Online (Sandbox Code Playgroud)

像这样的东西.

这可能吗?

谢谢,Boda Cydo.

c++ malloc smart-pointers new-operator

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

如何在C中输入指向char的指针数组?

假设我在C中有一个指向char的指针数组:

char *data[5] = { "boda", "cydo", "washington", "dc", "obama" };
Run Code Online (Sandbox Code Playgroud)

我希望使用qsort对这个数组进行排序:

qsort(data, 5, sizeof(char *), compare_function);
Run Code Online (Sandbox Code Playgroud)

我无法提出比较功能.由于某种原因,这不起作用:

int compare_function(const void *name1, const void *name2)
{
    const char *name1_ = (const char *)name1;
    const char *name2_ = (const char *)name2;
    return strcmp(name1_, name2_);
}
Run Code Online (Sandbox Code Playgroud)

我做了很多搜索,发现我必须**在qsort里面使用:

int compare_function(const void *name1, const void *name2)
{
    const char *name1_ = *(const char **)name1;
    const char *name2_ = *(const char **)name2;
    return strcmp(name1_, name2_);
}
Run Code Online (Sandbox Code Playgroud)

这很有效.

任何人都可以解释*(const char **)name1这个功能的使用吗?我根本不明白.为什么双指针?为什么我原来的功能不起作用?

谢谢,Boda …

c sorting qsort double-pointer

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