我認爲@Martijn彼得斯是正確的。您將不得不使用if
聲明,坦率地說if
聲明不會有太多影響。例如,考慮以下測試:
>>> from timeit import timeit
>>> timeit('create_matrix(particle_id=None)', setup='def create_matrix(particle_id=None):\n if particle_id:\t return particle_id\n else: return None', number=10000000)
1.3292641180877212 # if statement with particle_id defaulting to None
>>> timeit('create_matrix(particle_id=5)', setup='def create_matrix(particle_id=None):\n if particle_id:\t return particle_id\n else: return None', number=10000000)
1.5606957465069584 # if statement with particle_id defaulting to 5
>>> timeit('create_matrix(particle_id=5)', setup='def create_matrix(particle_id=None): return None', number=10000000)
1.2185165279484238 # no if statement
月10百萬次迭代中,if
語句添加比較少的時間。最後的測試不包括if
聲明。
所以,你可以試試這個代替(如@Martijn皮特斯建議):
def create_matrix(self, particle_id=None):
if particle_id is not None:
...
到底是什麼毛病'高清create_matrix(個體經營,particle_id =無)'然後'如果particle_id不無測試: '? –
我可以做到這一點,但後來我在方法中有一個if語句。這當然是一種選擇,但我想避免這種情況,因爲我將在數百萬個影響性能的文件上使用這種方法相當困難。 – user1654183
好吧,如果你想根據參數改變行爲,你將**擁有**來使用if語句。 –