【发布时间】:2017-11-09 17:10:53
【问题描述】:
我正在尝试优化一些代码。具体来说,我有两种方法,它们的作用非常相似。它们执行的操作是相同的,不同之处在于一个连接字符串,另一个将这些字符串附加到一个列表中。唯一不同的方法部分是涉及字符串或特定于列表的方法/操作的实例。
示例:
class Some_Class:
def __init__(self, num):
self.num = num
def some_function(self):
collector = ''
for x in range(self.num):
#do something
collector+= #the something
return collector
def some_function(self):
collector = []
for x in range(self.num):
#do something
collector.append(#the result of something)
return collector
优化代码的最佳方法是什么?一个简单的
if type(data) == str:
#do something
else:
#assume it's a list, and act accordingly
...导致难看、难听的代码,因为我必须在多个地方编写它。推荐?
【问题讨论】:
-
没有解释的否决票?真正的优雅。
-
您已将您的方法称为同名,因此解释器只会找到一个。
-
另一方面,您可以使用
list方法,当您知道它位于要连接的字符串值上时,请使用''.join(list_result)
标签: python-3.x oop methods