如果有这样的代码:
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或者这是插件的误报?
我偶然发现了这样的代码:
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)
请注意,不幸的是我无法更改“foo”的签名。