小编itz*_*aki的帖子

在组之间使用互斥

我试图在不同的组之间建立一个互斥的组:我有-a,-b,-c这些参数,我想和-a和-b一起发生冲突,或者-a和-c在一起.帮助应该显示类似[-a | ([-b] [-c])].

以下代码似乎没有互斥选项:

import argparse
parser = argparse.ArgumentParser(description='My desc')
main_group = parser.add_mutually_exclusive_group()
mysub_group = main_group.add_argument_group()
main_group.add_argument("-a", dest='a', action='store_true', default=False, help='a help')
mysub_group.add_argument("-b", dest='b', action='store_true',default=False,help='b help')
mysub_group.add_argument("-c", dest='c', action='store_true',default=False,help='c help')
parser.parse_args()
Run Code Online (Sandbox Code Playgroud)

解析不同的组合 - 全部通过:

> python myscript.py -h
usage: myscript.py [-h] [-a] [-b] [-c]

My desc

optional arguments:
  -h, --help  show this help message and exit
  -a          a help
> python myscript.py -a -c
> python myscript.py -a -b
> python myscript.py -b -c
Run Code Online (Sandbox Code Playgroud)

我试图改变的mysub_groupadd_mutually_exclusive_group把一切都变成相互排斥的: …

python python-2.7 argparse

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

初始化类型为枚举类的二维std ::数组(C++ 11)

我在C++ 11中有以下类:

class MyTable
{
    public:
    enum class EntryType
    {
        USED, FREE
    };

    MyTable(EntryType value)
    {
        for (uint32_t i = 0; i < 10; ++i)
        {
            memset(_table[i].data(), (int)value, sizeof(_table[0][0]) * 50);
        }
    }
    array<array<EntryType, 50>, 10> _table;
}
Run Code Online (Sandbox Code Playgroud)

尝试使用EntryType :: FREE的值构造MyTable的对象,二维数组中的每个项的值都为0x01010101(每8位1b),而不是仅为0x1的预期值

我猜它与我的value被投入有关int,但我不知道为了解决这个问题我应该做些什么.

c++ initialization c++11 enum-class stdarray

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