小编yas*_*sar的帖子

将json转换成dval与eval是一个很好的选择吗?

我从远程服务器获取一个json对象,并将其转换为python字符串,如下所示:

a = eval(response)
Run Code Online (Sandbox Code Playgroud)

这有什么愚蠢的,或者我有更好的选择吗?

python json dictionary eval

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

如何在PyQt中将参数传递给回调函数

我在工具栏中有大约10个QAction(这个数字在运行时会有所不同),它们都会做同样的事情,但是使用不同的参数.我想将参数作为属性添加到QAction对象,然后,QAction的触发信号也会将对象本身发送到回调函数,这样我就可以得到函数所需的参数.我实际上有两个问题:

  • 可以吗?
  • 有没有更好的方法呢?

python pyqt signals-slots

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

在Python中翻转函数的参数顺序

如今,我开始学习haskell,而当我这样做时,我尝试实现我在Python中从中学到的一些想法.但是,我发现这个具有挑战性.你可以在Haskell中编写一个函数,它接受另一个函数作为参数,并返回相同的函数,并且它的参数的顺序被翻转.可以用Python做类似的事吗?例如,

def divide(a,b):
    return a / b

new_divide = flip(divide)

# new_divide is now a function that returns second argument divided by first argument
Run Code Online (Sandbox Code Playgroud)

你能用Python做到这一点吗?

python functional-programming

9
推荐指数
2
解决办法
4279
查看次数

什么是迭代类方法next()和__next __()for,有什么区别?

我在python迭代器上有点迷失.我偶尔会使用它们,但我不记得自己创建它.我从某个地方读到我不记得哪里,这样的代码:

class Foo(object):
    def __init__(self):
        self.something = "initial_value"
    def __iter__(self):
        return self
    def next(self):
        # I don't quite remember what was here :S
        return self.something
Run Code Online (Sandbox Code Playgroud)

我猜__iter__()方法应该返回一个迭代器,迭代器应该有一个下一个方法吗?那么__next__()方法怎么样?是不是直接迭代一个类而没有用__iter__()方法返回另一个迭代器?

python iterator

8
推荐指数
2
解决办法
3069
查看次数

php正则表达式匹配html标签之外

我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时:

<a href="example.com" alt="yasar home page">yasar</a>
Run Code Online (Sandbox Code Playgroud)

这样yasar读取<span class="selected-word">yasar</span>,我的正则表达式也替换了锚标记的alt属性中的yasar.preg_replace()我正在使用的电流看起来像这样:

preg_replace("/(asf|gfd|oyws)/", '<span class=something>${1}</span>',$target);
Run Code Online (Sandbox Code Playgroud)

如何制作正则表达式,使其与html标签内的任何内容都不匹配?

php regex pcre preg-replace

8
推荐指数
2
解决办法
7065
查看次数

如何将ssh作业发送到后台

我通过ssh登录到远程服务器并启动了一个php脚本.最重要的是,它需要17个小时才能完成,有没有办法打破连接但是保持脚本执行?我没有进行任何输出重定向,所以我看到了所有的输出.

ssh bash io-redirection

8
推荐指数
2
解决办法
9432
查看次数

C中的函数指针数组

我很难理解函数指针的语法.我要做的是,有一个函数指针数组,不带参数,并返回一个void指针.任何人都可以帮忙吗?

c arrays pointers function

8
推荐指数
3
解决办法
6428
查看次数

如何使用Posix上的C创建具有权限的目录

我正在尝试编写一个创建目录的简单C程序(mkdir clone.).这是我到目前为止:

#include <stdlib.h>
#include <sys/stat.h> // mkdir
#include <stdio.h> // perror

mode_t getumask()
{
    mode_t mask = umask(0);
    umask (mask);
    return mask;
}

int main(int argc, const char *argv[])
{
    mode_t mask = getumask();
    printf("%i",mask);

    if (mkdir("trial",mask) == -1) {
        perror(argv[0]);
        exit(EXIT_FAILURE);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码创建了目录,d---------但我希望它drwxr-xr-x像mkdir一样创建它吗?我在这做错了什么?

编辑:这是我的工作解决方案:

int main(int argc, const char *argv[])
{
    if (mkdir("trial",0777) == -1) {
        perror(argv[0]);
        exit(EXIT_FAILURE);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

根据umask设置正确的权限会自动处理.因此我只需要使用完全权限调用mkdir,并根据当前的umask进行切割.

c posix umask mkdir

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

XOPEN_SOURCE和信号处理

在下面的程序中,如果我取消注释_XOPEN_SOURCE行,我的程序在我点击时终止C-c,相同的程序不会终止如果我不评论该行.任何人都知道_XOPEN_SOURCE影响信号处理的方式有哪些?我在linux上使用gcc(4.6.3)和glibc(2.15).

/* #define _XOPEN_SOURCE 700 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>

typedef void (*sighandler_t)(int);

void handle_signal(int signo)
{
    printf("\n[MY_SHELL] ");
    fflush(stdout);
}

int main()
{
    int c;
    signal(SIGINT, SIG_IGN);
    signal(SIGINT, handle_signal);
    printf("[MY_SHELL] ");
    while ((c = getchar()) != EOF) {
        if (c == '\n')
            printf("[MY_SHELL] ");
    }
    printf("\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c linux standards signals

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

如何实现线程安全队列

我之前在Python中使用过多线程库,但这是我第一次尝试在C中进行线程化.我想创建一个工作池.反过来,这些工作者应该推送或从队列中弹出.以下代码还没有完成,但是到目前为止我做的是:

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#define NUMTHREADS 20 /* number of threads to create */

typedef struct node node;
typedef struct queue queue;

struct node {
    char *name;
    node *next;
};

struct queue {
    node *head;
    node *tail;
};

/* pop: remove and return first name from a queue */
char *pop(queue *q)
{
    if (q->head == NULL)
        return NULL;
    char *name = q->head->name;
    node *tmp = q->head;
    q->head = q->head->next;
    free(tmp);
    return name;
}

/* push: add …
Run Code Online (Sandbox Code Playgroud)

c queue multithreading posix pthreads

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