Tag: 方法

如何重载Python的__bool__方法?

可能重复: 在python中定义一个类的“boolness” 我认为这应该打印“假”,为什么打印“真”? >>> class Foo(object): … def __bool__(self): … return False … >>> f = Foo() >>> if f: … print "True" … else: … print "False" … True >>>

“__method__”和“method”之间的区别

__method__ , method和_method__什么_method__ ? 是否有任何或某些随机的原因,人们认为__doc__应该是正确的,而不是doc 。 是什么让一种方法比另一种更特别?

什么是Java Base API中最具误导性的方法?

我最近试图将string文字转换为boolean ,当方法boolean Boolean.getBoolean(String name)popup自动完成窗口。 还有另外一种方法( boolean Boolean.parseBoolean(String s) )出现在后面,这导致我search找出这两者之间有什么区别,因为他们似乎都这样做。 事实certificate, Boolean.getBoolean(String name)实际上做的是检查是否存在给定名称的System属性(!),以及它的值是否为true 。 我认为这是非常具有误导性的,因为我绝对不会期望Boolean方法实际上调用了System.getProperty ,只是通过查看方法签名,它确实看起来像(至less对我来说)被用来parsing一个String作为boolean 。 当然,javadoc说得很清楚,但我仍然认为这个方法有一个误导性的名字,而且它不在正确的位置。 其他原始types的包装,如Integer也有类似的方法。 另外,它似乎不是一个非常有用的方法属于基础的API,因为我认为这是不是很常见的东西像-Darg=true 。 也许这是一个Java位置面试的好问题:“ Boolean.getBoolean("true")的输出是什么?” 我相信这些方法的更合适的位置将在System类,例如, getPropertyAsBoolean ; 但是我仍然认为没有必要在基础API中使用这些方法。 把它们放在像Properties类这样的东西里是很有意义的,在这种types的转换中非常普遍。 你怎么看待这一切? 另外,如果您还有其他“尴尬”的方法,请将其发布。 NB我知道我可以使用Boolean.valueOf或Boolean.parseBoolean将string转换为boolean ,但我只是想讨论一下API的devise。

独立开发人员应该开发哪种软件开发stream程?

我作为一个非常小的公司的独立开发人员工作。 我的工作非常混乱,我正在寻找方法使其更有条理。 一个问题是我的项目实际上没有pipe理。 很less有人问我在做什么,或者我有什么问题。 在某个时候,每周都会举行一次关于每周一次的会议,但是那是前一段时间。 似乎如果我想要这样的事情,我将不得不自己安排这些事情。有时候,我对接下来应该做的事情有点遗憾,因为我没有任务或明确的时间表。 从书籍和文章中,我发现很多可能有用的东西。 代码检查,TDD,unit testing,缺陷数据库等等,就像有一个好的编码标准(只存在一个粗略的风格指南,这在我看来已经有些过时了)。但是在一个小公司里,似乎没有资源或时间任何不重要的东西。 我在embedded式领域工作的事实似乎让事情变得更加复杂。 我觉得还有一个偷工减料的习惯,在短时间内做快速的黑客攻击。 这导致未完成和不专业的产品和错误等待在以后出现。 我会想象他们也是一个痛苦的维持。 所以,我即将inheritance一个具有挑战性的代码库,做新的开发,需要学习许多新的东西,我想同时build立一个过程。 这可能是最后的奖励,但是由于不太经验,我不确定是否可以把它closures。 在像这样的小商店里,环境对于编程来说是远远不够的。 还有很多其他的事情需要偶尔进行,如客户支持,接听电话,签名包裹,硬件testing,组装以及任何可能出现的各种任务。 所以你得到关于资源的想法。 这并不坏(有时解决一些客户问题有启发性),我相信它可以改进,但是我真正关心的是其他事情。 是否有可能在这样的地方开发? 这有助于进行某种pipe理吗? 什么样的? 是否有可能用小资源制造高质量的产品? 我如何说服自己和其他人,几十年来成功运作的公司需要改变? 什么将是至关重要的? 也许有人在类似的店里工作?

声明最终的静态方法是一个坏主意吗?

我明白在这个代码中: class Foo { public static void method() { System.out.println("in Foo"); } } class Bar extends Foo { public static void method() { System.out.println("in Bar"); } } Bar的静态方法隐藏了Foo声明的静态方法,而不是以多态的方式覆盖它。 class Test { public static void main(String[] args) { Foo.method(); Bar.method(); } } …会输出: 在Foo 在酒吧 在Foo中将method()重新定义为final将禁用Bar隐藏它的能力,并重新运行main()将输出: 在Foo 在Foo ( 编辑 :编译失败,当您将方法标记为final ,并且只有当我删除Bar.method() )时再次运行 将静态方法声明为final是否被认为是不好的做法,如果它阻止了有意或无意地重新定义方法的子类? ( 这是对使用final的行为的一个很好的解释。)

在Ruby中如何定义方法工作?

我正在通过编程Ruby – 一个实用的程序员指南 ,并偶然发现了这段代码: class SongList def [](key) if key.kind_of?(Integer) return @songs[key] else for i in 0…@songs.length return @songs[i] if key == @songs[i].name end end return nil end end 我不明白如何定义[]方法的作品? 为什么是[]外的关键,但是当方法被调用时,它在[]内? 键可以没有括号? 我意识到有更好的方法来写这个,知道如何写我自己的方法,但这个[]方法只是困扰我…任何帮助,非常感谢,谢谢

重新定义类方法或类

有没有办法重新定义一个类或它的一些方法,而不使用典型的inheritance? 例如: class third_party_library { function buggy_function() { return 'bad result'; } function other_functions(){ return 'blah'; } } 我能做些什么来取代buggy_function() ? 显然这是我想要做的 class third_party_library redefines third_party_library{ function buggy_function() { return 'good result'; } function other_functions(){ return 'blah'; } } 这是我的确切困境:我更新了一个破坏我的代码的第三方库。 我不想直接修改库,因为将来的更新可能会再次破坏代码。 我正在寻找一种无缝的方式来取代类方法。 我发现这个图书馆说它可以做到这一点,但是我已经4岁那么警惕了。 编辑: 我应该澄清说,我不能从third_party_library重命名为magical_third_party_library或其他因为框架的限制。 对于我的目的,是否可以只为课程添加一个函数? 我想你可以在C#中做一些叫做“部分类”的东西。

C函数与Objective-C方法?

两者有什么区别? 如果我正在编写一个程序,我什么时候需要这个: void aFunction() { //do something } 什么时候我需要这个: -(void)aMethod { //do something else }

方法重载。 你能过度使用吗?

定义几种不同的filter返回相同形状的数据的方法时,更好的做法是什么? 显式方法名称或重载方法? 例如。 如果我有一些产品,我从数据库拉 明确的方式: public List<Product> GetProduct(int productId) { // return a List } public List<Product> GetProductByCategory(Category category) { // return a List } public List<Product> GetProductByName(string Name ) { // return a List } 重载方式: public List<Product> GetProducts() { // return a List of all products } public List<Product> GetProducts(Category category) { // […]

为什么Main方法是私有的?

新的控制台项目模板创build一个像这样的Main方法: class Program { static void Main(string[] args) { } } 为什么Main方法和Program类都不需要公开?