小编Kar*_*and的帖子

赋值如何与python list slice一起使用

Python doc说切片列表会返回一个新列表.现在,如果返回"新"列表,我有以下与"分配给切片"有关的疑问

a = [1, 2, 3]
a[0:2] = [4, 5]
print a
Run Code Online (Sandbox Code Playgroud)

现在输出将是:

[4, 5, 3] 
Run Code Online (Sandbox Code Playgroud)
  1. 如何能够回归的东西出现在表达的左侧.
  2. 是的,我阅读了文档并且它说它是可能的,因为切片列表返回一个"新"列表,为什么原始列表被修改,我无法理解它背后的机制.

python list slice

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

使用-fPIC编译的程序在GDB中逐步执行线程局部变量时崩溃

这是一个非常奇怪的问题,只有在使用-fPIC选项编译程序时才会发生.

使用gdb我能够打印线程局部变量,但踩过它们会导致崩溃.

thread.c

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

#define MAX_NUMBER_OF_THREADS 2

struct mystruct {
    int   x;
    int   y;
};

__thread struct mystruct obj;

void* threadMain(void *args) {
    obj.x = 1;
    obj.y = 2;

    printf("obj.x = %d\n", obj.x);
    printf("obj.y = %d\n", obj.y);

    return NULL;
}

int main(int argc, char *arg[]) {
    pthread_t tid[MAX_NUMBER_OF_THREADS];
    int i = 0;

    for(i = 0; i < MAX_NUMBER_OF_THREADS; i++) {
        pthread_create(&tid[i], NULL, threadMain, NULL);
    }

    for(i = 0; i < MAX_NUMBER_OF_THREADS; …
Run Code Online (Sandbox Code Playgroud)

c linux gcc gdb pthreads

17
推荐指数
1
解决办法
1139
查看次数

功能定义C.

可能重复:
C函数语法,参数列表后声明的参数类型

我在" 专家C编程 "中看到了以下函数定义语法

int compare(s1, s2)
    char * s1, *s2;
{
    while (*s1++ == *s2) {
        if (*s2++ == 0) return (0);
    }
    return (*--s1 - *s2);
}
Run Code Online (Sandbox Code Playgroud)

上述定义如何有效?它编译和运行完美,没有任何错误.

对于函数定义,我更熟悉以下语法

int compare(char * s1,char *s2)
{
    while (*s1++ == *s2) {
        if (*s2++ == 0) return (0);
    }
    return (*--s1 - *s2);
}
Run Code Online (Sandbox Code Playgroud)

并且我没有看到书中给出的那个(在我大学或其他地方学习C时),任何人都可以对书中给出的那些进行一些说明.

c function

10
推荐指数
1
解决办法
1395
查看次数

Excel VBA中的重复用户表单

我想在excel vba中复制表单,这是必要的,因为我已经对表单应用了一些格式,现在希望我的所有表单都具有相同的格式.

通过这种方式,我只需要在每个表单中更改命令按钮的"名称",而不是其他任何内容.

我尝试导出表单然后导入它,但它给出了一个错误,说"该名称已被使用"

任何帮助,将不胜感激.

excel vba excel-vba

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

为什么git diff没有为未合并的路径显示任何内容

合并两个分支时,合并失败很多次,我将单独解决差异.

一些成功合并的文件,我可以看到它的差异

git diff --staged <merged-file>
Run Code Online (Sandbox Code Playgroud)

问题是对于未合并路径,当我尝试检查引入的差异时,我什么也看不见.

git diff <unmerged-file>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用远程主分支进行区分时,会出现差异.

git diff origin/master <unmerged-file>
Run Code Online (Sandbox Code Playgroud)

为什么会这样?> 合并操作是否更新了我的本地HEAD或其他什么?
此外,当我git add用来标记分辨率时,他们永远不会进入临时区域,这是为什么git diff没有显示任何东西?

git merge

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

烧瓶:分叉环境

Flask-Quick Start中浏览Flask文档时,我发现了以下段落.

注意

即使交互式调试器在分叉环境中不起作用(这使得它几乎不可能在生产服务器上使用),它仍然允许执行任意代码.这使其成为主要的安全风险,因此绝不能在生产机器上使用.

我搜索过stackoverflow,谷歌,但我无法找到这些"分叉环境",它们如何允许执行任意代码.如果有人可以指出我正确的方向,它会很棒!

python flask

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

stringstream重复最后一个单词

我正在尝试使用stringstream分割字符串:

#include <fstream>
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main(){
    ifstream fp;
    string name;

    fp.open("in.txt");
    while (fp){
        string line;
        getline(fp, line);
        cout << line << endl;
        istringstream line_stream(line);

        while (line_stream){
            line_stream >> name;
            cout << name << " ";
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是in.txt:

cat bat rat sat
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

cat bat rat sat
cat bat rat sat sat
Run Code Online (Sandbox Code Playgroud)

getline()函数中检索到的行是正确的,但在分割的过程中我得到了最后一个单词两次.我不确定为什么会这样.

c++

7
推荐指数
1
解决办法
4022
查看次数

Python import 语句是否也自动导入依赖项?

我有以下文件 app.py

class Baz():
    def __init__(self, num):
        self.a = num
        print self.a

def foo(num):
    obj = Baz(num)
Run Code Online (Sandbox Code Playgroud)

和第二个文件 main.py

from app import foo
foo(10)
Run Code Online (Sandbox Code Playgroud)

运行该文件python main.py会给出正确的输出。

现在在第二个文件中,我只是导入函数而不是类,尽管成功执行我的函数也需要类。

导入函数时,Python 会自动导入运行该函数所需的所有其他内容,还是会自动搜索当前目录中的类?

python function python-import

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

检查跳转缓冲区是否有效(非本地跳转)

我们在代码库中实现了"longjmp-Restore堆栈环境".该longjmp例程由特定error_exit函数调用,该函数可以从任何地方调用.

因此,有可能在longjmp调用时setjmp可能没有调用例程,并且缓冲区可能具有导致崩溃的无效值.

我可以初始化缓冲区,NULL或者是否有任何检查可用于检查未设置或无效的值.一种方法是我可以在setjmp调用时设置一个标志变量,我可以检查它.但那只是一个黑客.

void error_exit()
{
    extern jmp_buf buf;
    longjmp(buf, 1);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

void error_exit()
{
    extern jmp_buf buf;

    if(buf)
       longjmp(buf, 1);

    return 1;
}
Run Code Online (Sandbox Code Playgroud)

代码是混合的C/C++,我知道我可以替换setjmp并且longjmp在任何地方都可以使用C++异常处理,但现在这是不可能的,我可以longjmp用无效的缓冲区来捕获导致崩溃吗?

c c++

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

链接功能时GCC没有错误

我有以下两个.c文件

main.c中

#include <stdio.h>

int print();
int show(int);

int main()
{
    int i = 0; 
    float x = 1.0;
    int y = *((int*)(&x));

    print();

    i = show(5);
    printf("%d", i);
    printf("\n%d", y);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

foo.c的

#include <stdio.h>

void print()
{
    printf("Hello World !!\n");
}

float show()
{
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

这是我的 makefile

CC = gcc
CFLAGS = -I. -Wall -pedantic -Wconversion

.PHONY: clean

%.o: %.c
    $(CC) -c -o $@ $< $(CFLAGS) 

main: main.o foo.o
    $(CC) -o main main.o …
Run Code Online (Sandbox Code Playgroud)

c linker gcc

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

标签 统计

c ×4

python ×3

c++ ×2

function ×2

gcc ×2

excel ×1

excel-vba ×1

flask ×1

gdb ×1

git ×1

linker ×1

linux ×1

list ×1

merge ×1

pthreads ×1

python-import ×1

slice ×1

vba ×1