【发布时间】:2013-09-03 13:24:05
【问题描述】:
这似乎是一个离题的问题,但我想知道编程的正确方法(或者说是有效的方法)。
假设我们有一个 Web 应用程序,并且在一个函数内部,我们必须检查字典键是否具有特定值(或者它可以应用于任何对象属性检查)。这些方式中哪一种更有效(在内存或速度方面),为什么?或者,如果这样做是错误的,为什么?
if myDictionary.get("xy") == "defined value":
runSomeFunction(myDictionary.get("xy"))
或
myVar = myDictonary.get("xy", "")
if myVar == "defined value":
runSomeFunction(myVar)
我们处理此代码的方式可能会有更多样化的讨论 - 在 Web 应用程序中(每分钟有数百个请求)或在普通脚本中作为最佳编程方式。
提前感谢您的任何意见。
【问题讨论】:
-
取决于 .get("xy") 的成本以及您要优化的内容:cpu、内存 i/o...
-
在内存方面几乎是一样的——在这两种情况下,被引用的对象在内存中只存在一次。唯一的区别是临时变量使用的内存,这无关紧要。
-
@ThiefMaster 谢谢,我想知道是否有一些内存“开销”,如果我可以这样调用它来创建临时变量而不是函数调用。
-
变量当然需要一些内存,但它只是它“包含”的对象的“标签”。所以实际的对象不会被复制。
标签: python performance coding-style