Tag: 编码风格

Python导入编码风格

我发现了一种新的模式。 这种模式是众所周知的还是对此有何看法? 基本上,我很难清理源文件来确定哪些模块可以导入等,所以现在,而不是 import foo from bar.baz import quux def myFunction(): foo.this.that(quux) 我将所有导入移动到实际使用的函数中,如下所示: def myFunction(): import foo from bar.baz import quux foo.this.that(quux) 这做了一些事情。 首先,我很less意外地污染了其他模块的内容。 我可以为模块设置__all__variables,但是随着模块的发展,我不得不更新它,这对模块中实际存在的代码没有帮助。 其次,我很less在模块的顶部看到一大堆的import产品,其中一半或更多的import产品已经不再需要,因为我已经对其进行了重构。 最后,我发现这个模式很容易阅读,因为每个引用的名字就在函数体中。

在C / C ++中声明指针variables的正确方法

我注意到有些人使用下面的符号来声明指针variables。 (a) char* p; 代替 (b) char *p; 我用(b)。 符号(a)的理性是什么? 符号(b)对我更有意义,因为字符指针本身不是一个types。 相反,types是字符,variables可能是一个指向字符的指针。 char* c; 这看起来像有一个types的char *,variablesc是这种types。 但实际上,types是char和* c(由c指向的内存位置)是该types的(char)。 如果你一次声明多个variables,这个区别就变得很明显了。 char* c, *d; 这看起来很奇怪。 c和d都是指向一个字符的指针。 在这之后,下一个看起来更自然。 char *c, *d; 谢谢。

如果函数A只被函数B需要,那么A应该在B中定义?

简单的例子。 两种方法,一种叫另一种: def method_a(arg): some_data = method_b(arg) def method_b(arg): return some_data 在Python中,我们可以在另一个def声明def 。 所以,如果method_b是必需的,只从method_a ,我应该在method_a内声明method_a ? 喜欢这个 : def method_a(arg): def method_b(arg): return some_data some_data = method_b 或者我应该避免这样做?

为什么使用def main()?

可能重复: if __name__== "__main__"做什么? 我见过一些代码示例和教程使用 def main(): # my code here if __name__ == "__main__": main() 但为什么? 有什么理由不在文件顶部定义你的函数,然后在它下面写代码? 即 def my_function() # my code here def my_function_two() # my code here # some code # call function # print(something) 我只是想知道主音是否有韵?

有人还在C#中使用,如果有的话,为什么?

我想知道是否任何人仍然使用C#中的“goto”关键字语法和可能的原因有这样做。 我倾向于认为任何导致读者跳出代码的言论都是不好的做法,但是想知道是否有任何可信的scheme来使用这种语法? 转到关键字定义

“C”sizeof与一个types或variables

最近看到有人赞扬另一位用户使用sizeof var而不是sizeof(type)。 我一直认为这只是一种风格的select。 有什么重大的区别? 举例来说,f和ff的行被认为比g和gg的行更好: typedef struct _foo {} foo; foo *f = malloc(count * sizeof f); foo *g = malloc(sizeof(foo) * count); foo **ff = malloc(count * sizeof *ff); foo **gg = malloc(sizeof(foo*) * count); 在我看来,第一套只是一个风格问题。 但是在第二对线中,额外的第二个*很容易被混淆为乘法。

c#:“System.Object”和“object”的区别

在C#中,在代码中使用System.Object而不是仅仅是object ,还是System.String而不是string等有什么区别? 还是只是一个风格问题? 为什么有一种forms比另一种forms更可取?

Ruby风格:如何检查是否存在嵌套的哈希元素

考虑存储在散列中的“人”。 两个例子是: fred = {:person => {:name => "Fred", :spouse => "Wilma", :children => {:child => {:name => "Pebbles"}}}} slate = {:person => {:name => "Mr. Slate", :spouse => "Mrs. Slate"}} 如果“人”没有孩子,则“孩子”元素不存在。 那么,对于斯莱特先生,我们可以检查他是否有父母: slate_has_children = !slate[:person][:children].nil? 那么,如果我们不知道“石板”是一个“人”哈希呢? 考虑: dino = {:pet => {:name => "Dino"}} 我们再也不能轻易地检查孩子了: dino_has_children = !dino[:person][:children].nil? NoMethodError: undefined method `[]' for nil:NilClass […]

在C ++中使用“超级”

我的编码风格包括以下习惯用法: 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 something else } 它甚至可以被链接(但我仍然可以find它的用途): class DerivedDerived […]

这是什么“(函数(){});”,括号内的一个函数,意味着在JavaScript?

可能重复: 这是什么意思? (function(x,y)){…}){a,b); 在JavaScript中 围绕JavaScript对象/函数/类声明的括号是什么意思? 大家好 我不知道以下几点: (function(){ // Do something here … })(someWord) //Why is this here?; 我的问题是: 将函数放入方括号中的含义是什么.ie (function(){}); ? 在一个函数的末尾,括号是怎么做的呢? 我通常看到这些在jQuery代码,和其他一些JavaScript库。