使用嵌套的def来组织代码

时间:2015-07-05 22:24:00

标签: python coding-style

我一直将<p>Click on a list item.</p> <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <ul data-bind='foreach:list'> <li class='item' data-bind='click: $root.selectItem' > <span data-bind='text:name'></span> </li> </ul>语句嵌套为一种分组/组织代码的方式,但在做了一些阅读之后我觉得我在滥用它......

做这样的事情是否犹豫不决?

def

2 个答案:

答案 0 :(得分:2)

本身没有任何问题。但是当你使用这样的结构时你应该考虑一件事:random_namerandom_value是在你调用generate_random_info()时不断重新定义的函数。现在这对于那些特定功能可能不是问题,特别是当你不经常调用它时,你应该考虑这是可以避免的开销。

所以你应该把这些函数定义移到generate_random_info函数之外。或者,由于那些内部函数本身并没有做太多,而你只是直接调用它们,只需内联它们:

def generate_random_info():
    return {
        'name': numpy.random.choice(['foo', 'bar']),
        'value': numpy.random.rand()
    }

答案 1 :(得分:0)

除非您计划在单个函数和重复函数中重复使用相同的代码块,否则我将避免仅仅为了这样做而创建这些函数。我不是关于代码如何在计算级别上工作的专家,但我认为创建一个函数比仅仅使用该行更加密集,特别是如果你只是去了使用该功能一次。