小编jlc*_*lin的帖子

获取容器python中所有项的属性

我有以下(显然是简化的)课程

class A(object)
    def __init__(self, a):
        self.a = a
        self.b = 'b'
        # Other class attributes are added


class B(list):
    """
    Some customization of this class...
    """
    pass

BB = B([A(i) for i in range(10)])
Run Code Online (Sandbox Code Playgroud)

我想要做

B.a
Run Code Online (Sandbox Code Playgroud)

并从中获取a每个包含项目的所有属性的列表B.我知道为了做到这一点,我需要覆盖__getattr__,但我不确定实现它的最佳方法.这需要是通用的,因为B不知道A可能需要访问的任何属性.

有人可以就这个想法的实施提出一些建议吗?

python

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

如何使用auto关键字在C++ 11中返回任意类型?

我有一个看起来像这样的课程:

class Container {
    public:
        Container(){
            Doubles["pi"] = 3.1415;
            Doubles["e"] = 2.7182;

            Integers["one"] = 1;
            Integers["two"] = 2;
        }

        // Bracket.cpp:23:9: error: 'auto' return without trailing return type
        // auto& operator[](const std::string&);
        auto& operator[](const std::string& key);

    private:
        std::map<std::string, double> Doubles;
        std::map<std::string, int> Integers;
};
Run Code Online (Sandbox Code Playgroud)

我想重载operator[]函数以从任何一个DoublesIntegers根据传递的键返回一些东西.但是,如果要归还的是a 或a ,我不知道prioi.我想以这种方式实现这个功能:doubleintoperator[]

// Compiler error
// Bracket.cpp:30:1: error: 'auto' return without trailing return type
// auto& Container::operator[](const std::string& key){
auto& Container::operator[](const std::string& key){
    std::cout …
Run Code Online (Sandbox Code Playgroud)

c++ auto c++11

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

C++ 11自动创建整数到枚举值映射

我需要创建地图intenum值.(我正在读取文件中的整数,需要enum在运行时从它们创建一个.)我可以手动创建一个地图,如下例所示.然而,这是一个简单的例子,我的枚举只有少数(即七个)元素.

我的现实问题有几百个元素enum class.我不需要打印我的真实世界的名字enum,但我需要得到enum给定整数的值.我已经enum class创建了并且想要一种自动方式来创建从整数到枚举值的映射.

我正在寻找自动创建我调用的地图,WeekMap所以我可以传递一个整数并获取enum值.这甚至可能吗?请告诉我它是.

// Compile with:
//      clang++ -std=c++11 -stdlib=libc++ enum_test.cpp -o enum_test
// 

#include <iostream>
#include <string>
#include <map>

enum class Days {
    SUNDAY    = 1,
    MONDAY    = 2,
    TUESDAY   = 3,
    WEDNESDAY = 4,
    THURSDAY  = 5,
    FRIDAY    = 6,
    SATURDAY  = 7
};

std::ostream& operator<< (std::ostream& os, const Days& day){
    os << static_cast<std::underlying_type<Days>::type>(day);
    return os;
} …
Run Code Online (Sandbox Code Playgroud)

c++ enums map c++11

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

为什么 UltiSnips 列出可用片段不起作用?

我想使用简单的按键来列出可用的片段。然而我似乎无法做到这一点。这是我的 UltiSnips 设置:

let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<tab>"
let g:UltiSnipsJumpBackwardTrigger="<s-tab>"

let g:UltiSnipsListSnippets="<c-;>"

let g:UltiSnipsSnippetsDir="~/.vim/ultisnips"
let g:UltiSnipsEditSplit="vertical"

"Open UltiSnips edit function
nmap <leader>se :UltiSnipsEdit<cr>

Run Code Online (Sandbox Code Playgroud)

我确实安装了vim-snippets和一些我自己定义的片段。

当我按下 时什么也没有发生CTRL-;。我尝试将映射更改为各种不同的击键,但没有任何反应。我认为我正在使用的其他一些插件会干扰所选的击键,因此我对其进行了多次更改,但仍然没有得到列表。无论我有什么设置,我都看不到片段列表。

我必须调用什么魔法才能查看片段列表?

vim settings ultisnips

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

为什么git子模块路径错误?

我有一个git存储库(我将其称为ml)位于

ssh://ml-fey/usr/projects/data/nuclear/mc/type1
Run Code Online (Sandbox Code Playgroud)

该存储库有一个子模块.该.gitmodules文件看起来像这样

[submodule "Appendix"]
    path = Appendix
    url = /usr/projects/data/nuclear/mc/type1/Appendix
Run Code Online (Sandbox Code Playgroud)

我可以将存储库克隆到新的存储库(我将其称为XL),但是当我尝试更新子模块时,我收到此错误

$ git submodule update
Cloning into 'Appendix'...
fatal: '/usr/projects/data/nuclear/mc/Appendix' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Clone of 'ssh://ml-fey/usr/projects/data/nuclear/mc/Appendix' into submodule path 'Appendix' failed
Run Code Online (Sandbox Code Playgroud)

请注意,搜索Appendix子模块的type1目录缺少最终目录.git无法更新子模块的原因XL是因为ssh://ml-fey/usr/projects/data/nuclear/mc/Appendix不存在.type1去哪儿了?

存储库的.gitmodules文件XL如下所示:

[submodule …
Run Code Online (Sandbox Code Playgroud)

git git-submodules

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

C++ 11嵌套映射与列表初始化

我有一个嵌套的地图,即map<int, map<int, string>>我想用初始化列表初始化.我可以使用初始化列表来初始化单级映射,但似乎无法找出嵌套映射的正确语法.它甚至可能吗?

MWE:

// This example shows how to initialize some maps
// Compile with this command:
//      clang++ -std=c++11 -stdlib=libc++ map_initialization.cpp -o map_initialization

#include <iostream>
#include <map>
#include <string>

using namespace std;

int main(){
    cout << "\nLearning map initialization.\n" << endl;

    map<int, string> level1map = {
        {1, "a"},
        {2, "b"},
        {3, "c"}
    };

    for (auto& key_value : level1map) {
        cout << "key: " << key_value.first << ", value=" << key_value.second << endl;
    }

//  This section …
Run Code Online (Sandbox Code Playgroud)

c++ initialization map initializer-list c++11

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

熊猫:为什么是 query() 而不是括号运算符?

.query在 apandas.DataFrame和括号运算符中使用方法有什么区别?对我来说,它们似乎做同样的事情,只是语法不同。我错过了什么吗?为什么我会选择一种方式而不是另一种方式?

pandas

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

datetime模块的有效日期范围是多少?

我正在玩Python datetime模块.我用它来确定给定日期的星期几.ValueError当日期无效时,Python会方便地引发; 例如,2月29日非闰年.

我发现,对于ValueError不是2月29日的许多日期,在公元超过10,000年的情况下,会引发例外情况.这使我认为该datetime模块对于将来的日期无效.

datetime模块的有效日期范围是多少?

python datetime calendar date

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