[英]Is there a way to use more than 1 variable length arguments (*args) in a Python function?
[英]Is it more efficient to use function args after branching (Python)?
我有一個帶有幾個參數的函數,其中一個是聯系電話。 提供給該功能的數據用於生成文檔,如果選擇了一個選項,該文檔將立即以內聯方式返回,其中另一個選項將使用聯系電話並生成電子郵件。 在此功能的原始版本中,聯系號碼是在該功能開始時立即解析的,但是我將其移到else塊中,因為這實際上是使用該聯系號碼生成電子郵件的地方,因此我沒有理由創建一個新變量(如果有一半時間未使用)。 下面是一個示例,它是使用Django框架在Python中構建的:
def function(request, object, number=None):
obj = ObjectItem.objects.get(id=object)
# Originally number processed here
if request.method == 'POST':
if 'inline' in request.POST:
data = {
'object': obj,
}
return generate_document(data, inline=True)
else:
if number:
contact = '{}'.format(number)
else:
contact = obj.contact
data = {
'object': obj,
}
document = generate_document(data, inline=False)
return message(document, contact)
else:
return redirect()
在查看我的代碼時,我意識到我可以將數據字典創建移出POST中的內聯處理而不是內聯處理,但是我不知道是否將number參數的處理移至該處理中的else塊中實際上可以節省任何時間,或者是更標准的處理方式。 我知道,由於Python是一種腳本語言,因此沒有自動執行的優化方法,就像它們會以一種編譯語言重新安排這種聲明一樣,因此,我正在尋找最有效的方法。
從性能的角度來看,是否在if
或if
之上創建data
都沒有區別。 Python僅會執行一次,而dict將只創建一次。 但是出於設計原因,應將其移至if
之上。
首先, 不要重復自己 -如果您可以在一個地方合理地實現一些代碼,請不要將其散布在代碼周圍。 假設您以后決定使用defaultdict
更好,則只需在一個地方進行更改即可。
其次,安置意味着意圖。 如果您已聲明要計划在所有地方使用該數據結構, if
放在上面。 在您當前的代碼中,讀者會問您相同的問題...為什么不是if
之上呢? 這有點瑣碎,但是閱讀代碼不應引起更多問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.