我刚刚切换到Pycharm,对所有警告和提示它为我提供了改进我的代码感到非常高兴。除了我不了解的那一项: This inspection detects shadowing names defined in outer scopes. 我知道从外部作用域访问变量是一种不好的做法,但是隐藏外部作用域有什么问题呢? 这是一个示例,其中Pycharm给我警告消息: data = [4, 5, 6] def print_data(data): # <-- Warning: "Shadows 'data' from outer scope print data print_data(data)
我不是PHP开发人员,所以我想知道在PHP中使用纯私有对象(我喜欢的方式)以纯OOP风格使用显式getter / setters是否更受欢迎: class MyClass { private $firstField; private $secondField; public function getFirstField() { return $this->firstField; } public function setFirstField($x) { $this->firstField = $x; } public function getSecondField() { return $this->secondField; } public function setSecondField($x) { $this->secondField = $x; } } 或只是公共领域: class MyClass { public $firstField; public $secondField; } …
我的编码风格包括以下成语: class Derived : public Base { public : typedef Base super; // note that it could be hidden in // protected/private section, instead // Etc. } ; 这使我可以将“ super”用作Base的别名,例如,在构造函数中: Derived(int i, int j) : super(i), J(j) { } 甚至当从基类的重写版本中调用该方法时: void Derived::foo() { super::foo() ; // ... And then, do …
我知道这不是最重要的问题,但是我刚刚意识到我可以将Javadoc注释块放在注释之前或之后。我们想采用什么作为编码标准? /** * This is a javadoc comment before the annotation */ @Component public class MyClass { @Autowired /** * This is a javadoc comment after the annotation */ private MyOtherClass other; }