小编Tom*_*ner的帖子

在python中实现**kwargs构造

我在python中实现了一个类,它目前继承自dict,但实际上,我不希望它.继承的主要原因是我可以使用**kwargs构造将内容复制到参数列表中.

我认为python在字典上做了某种迭代,但我找不到任何文档.

这是可能的,如果是的话,怎么样?

代码示例只是为了让事情更清晰:

   class MyThing():
       def __init__(self):
            self.dictionary = {}


   thing = MyThing()
   # code that causes thing.dictionary to be populated
   somefunc(**thing)
Run Code Online (Sandbox Code Playgroud)

结果如下:

TypeError: somefunc() argument after ** must be a mapping, not instance
Run Code Online (Sandbox Code Playgroud)

python

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

如何将char*作为双打?

我有一个结构,x,y,z为double类型.我试图用空格分割线条,然后将该数组的值放入我的结构但是它无法工作,有人可以告诉我该怎么做?

#include "_externals.h"
#include <vector>

typedef struct
{
    double X, Y, Z;
} p;

p vert = { 0.0, 0.0, 0.0 };

int main()
{
    char *path = "C:\\data.poi";    

    ifstream inf(path);
    ifstream::pos_type size;
    inf.seekg(0, inf.end);
    size = inf.tellg();

    double x, y, z;
    char *data;

    data = new char[size];
    inf.seekg(inf.beg);
    inf.read(data, size);
    inf.seekg(inf.beg);

    char** p = &data;
    char *line = *p;    

    for (int i = 0; i < strlen(data); ++i)
    {
        const char *verts = strtok(line, " ");

        //this isnt working …
Run Code Online (Sandbox Code Playgroud)

c++

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

将负数除以正数

假设以下代码:

mov eax, 0
sub eax, 2

xor edx, edx
idiv base
Run Code Online (Sandbox Code Playgroud)

其中base等于8(定义为const int base = 8).

结果,我希望得到0 eax和2(或-2)edx.但是,划分的结果是一个很长的数字.最有可能的是eax,当我从中减去2时,它是由注册表中的溢出引起的.我认为eax通过idiv操作解释为unsigned int.如何正确执行此划分?

我在x64系统上的Visual Studio 2013中编码.

assembly division

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

简化perl map和grep

我需要在某些集合的所有行中找到一个特定的子文本,我最终得到了这个:

my @missing = grep { $_ ne '' } map { $1 if m/^prefix:\s+(.+):\s+suffix$/ } @lines;
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.但是那个开头的grep(为了摆脱比赛没有发生的所有空情线)看起来很糟糕.

这样做有更干净的方法吗?

只是为了澄清,这里是示例输入和没有grep的输出:

my @lines = (
    'drivel',
    'prefix: matches: suffix',
    'stuff',
    'prefix: more: suffix'
);

my @selected = map { $1 if m/^prefix:\s+(.+):\s+suffix$/ } @lines;
print "found: $_\n" foreach @selected;
Run Code Online (Sandbox Code Playgroud)

需要输出:

found: matches
found: more
Run Code Online (Sandbox Code Playgroud)

输出得到以上:

found:
found: matches
found:
found: more
Run Code Online (Sandbox Code Playgroud)

perl map-function

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

使用三元运算符选择perl子例程

我有一种情况,我想根据一个相当简单的测试调用两个子程序之一,但参数列表非常复杂.这似乎是使用三元运算符最容易阅读并在C中工作正常,但perl等价物正在逃避我.

代码是这样的

$res = ($d eq 'something' ? \func1 : \func2)(parameters);
Run Code Online (Sandbox Code Playgroud)

但perl对)(序列非常不满,对于我的生活,我无法弄清楚要放在那里的东西

perl ternary-operator subroutine

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

如何从java中的字符串中删除反斜杠和双引号以制作json

class Request {     
     private String requestid;
     private String contenttype;
     private String service;
     private String requestjson;
}
Run Code Online (Sandbox Code Playgroud)

使用对象映射器将此对象制作为 json 但映射器正在返回我

"requestjson\":\"{\\\"username\\\":\\\"farhan\\\",\\\"password\\\":\\\"farhaan\\\"}\"}"}
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除这个额外的

\\\
Run Code Online (Sandbox Code Playgroud)

我试过

 jsonOutput.replaceAll("\"",Character.toString ((char) 34));
Run Code Online (Sandbox Code Playgroud)

java json jackson spring-boot

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