小编Seb*_*Bln的帖子

类属性可以隐藏 Python 中的内置函数吗?

如果有这样的代码:

class Foo():
   def open(self, bar):
       # Doing some fancy stuff here, i.e. opening "bar"
       pass
Run Code Online (Sandbox Code Playgroud)

当我flake8使用flake8-builtins插件运行时,出现错误

A003 class attribute "open" is shadowing a python builtin
Run Code Online (Sandbox Code Playgroud)

我不明白该方法如何可能隐藏内置 open函数,因为该方法只能使用实例(即self.open("")someFoo.open(""))来调用。是否有其他方式希望调用内置函数的代码最终调用该方法?flake8-builtins或者这是插件的误报?

python built-in flake8

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

使用 std::unique_ptr 有什么好处吗?

我偶然发现了这样的代码:

void foo(T* bar); // Note: takes ownership of 'bar'.

foo(new T());
Run Code Online (Sandbox Code Playgroud)

现在我想知道将其重构为是否有任何意义:

void foo(T* bar); // Note: takes ownership of 'bar'.

auto tempT = std::make_unique<T>();
foo(tempT.release());
Run Code Online (Sandbox Code Playgroud)
  • 它更安全吗?
  • 它确实使所有权转移更加清晰,尽管从参数列表中调用“new”本身就已经非常清楚了。

请注意,不幸的是我无法更改“foo”的签名。

c++ exception unique-ptr

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

标签 统计

built-in ×1

c++ ×1

exception ×1

flake8 ×1

python ×1

unique-ptr ×1