小编use*_*792的帖子

Python中的函数对象是什么?

我总是在Python中听到这个声明(对于诸如装饰器之类的主题,当你传递函数时等)但是从未真正看到过这方面的细节.

例如,是否可以创建一个c只有一个抽象方法的类,该方法使用一组打开和关闭的括号进行调用.

i.e class c:
       @abstractmethod
       def method_to_be_called_by():
        ... 
Run Code Online (Sandbox Code Playgroud)

所以你可以拥有

c(whatever parameters are required)
Run Code Online (Sandbox Code Playgroud)

凭借我的理解,我可能会脱离标记,我只是对这个人的意思感到好奇.

python methods class function

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

为cython包装枚举类

我试图将一个枚举类包装在c ++头文件中,以便在cython项目中使用.我已经google了一下,无法找到如何实现这一点 - 是否支持?

c++ cython c++11 enum-class

10
推荐指数
3
解决办法
2818
查看次数

通过常量引用传递时修改对象

我发现下面的行为真的很奇怪,这只是我代码中一个奇怪错误的原因。将带有引用的对象作为常量引用传递,然后使用这些引用来更改它们引用的对象是否被认为是不好的?我知道引用没有改变,但我会假设将对象作为 const ref 传递会使它的所有成员也成为 const 吗?

struct wrapr{
    int& a;
};

void mod(const wrapr& aaa){
    aaa.a = 1;
}


int main() {
  int b = 2;
  wrapr a {b};

  mod(a);
  std::cout << b;  // prints 1
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:

奇怪的是,如果我要声明结构

struct wrapr{
    const int& a;
};
Run Code Online (Sandbox Code Playgroud)

那么代码将无法编译。我猜当你通过 const 引用传递一个对象时,我有什么心理模型,它与在它的所有成员变量上加上“const”前缀相同。显然情况并非如此。

c++ reference pass-by-reference

5
推荐指数
0
解决办法
71
查看次数

有没有比这更简洁的方法来初始化 unique_ptr&lt;char[]&gt; ?

所以目前我有:

std::string a;
std::unique_ptr<char[]> b(std::make_unique<char[]>(a.size() + 1));
std::copy(std::begin(a), std::end(a), b.get());
Run Code Online (Sandbox Code Playgroud)

是否可以一步直接初始化?

c++ initialization smart-pointers unique-ptr c++14

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

c ++更好地初始化地图地图

我今天刚刚开始学习c ++,并且很难找到一种优雅的方式来初始化地图.在mo,可怕的方法是:

typedef std::map < char, map < char, int > >  terribly_initialised_map;
Run Code Online (Sandbox Code Playgroud)

然后

terribly_initialised_map plz_help;
plz_help['m']['e'] = 1;
....
...
..
.
Run Code Online (Sandbox Code Playgroud)

肯定有更好的办法?

c++ initialization map

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