我偶然发现了这件作品:
def getChild(self, childName):
for child in self.children :
if(childName == child.data['name']):
return child
return None
就ranting而言,这段代码意味着关于这个库的所有内容。你知道吗
我对python不是很了解,但我认为执行此任务的规范python方法是
def getChild(self, childName):
return (
[ child for child in self.children
if child.data['name'] == childName
] + [ None ]
)[0]
或者,为了更好的可读性
def getChild(self, childName):
myChildren = dict([
(child.data['name'],child)
for child in self.children
])
try:
return myChildren[childName]
except:
return None
除了我仍然不知道如何以及何时缩进以及在哪里放置{
、[
、(
、)
、]
和}
之外,我的替代方法总是对self.children
的所有元素都起作用。你知道吗
python认识到这一点并并行地处理数据集,还是仍然按顺序处理数组?(因此总比我在图书馆里找到的简单搜索要花更长的时间)
由于执行了大量的查找,当然最好将库更改为始终维护一个儿童词典,而不是一个列表,但这不是重点。我想知道python如何解释和处理这些代码。你知道吗
不,没有自动并行化。Python的目的是高效地编写代码,而不是提高计算效率。还有一个更大的问题:GIL-Global解释器锁。这意味着一次只执行一个线程。因此,在python中并行化CPU密集型任务没有什么意义。有些口译员没有GIL,但一般的经验法则是:如果你不知道GIL,那么你就有了它。你知道吗
关于您发布的代码:python允许您以最常见的过程风格或函数式风格进行编写,这在大学里很受欢迎。你可以任意选择。你知道吗
相关问题 更多 >
编程相关推荐