簡體   English   中英

將None傳遞給參數是否正確?

[英]Is correct to pass None to a parameter?

我試圖理解是否一個好主意或不傳遞作為參數python等效的null; 我認為是無。

示例:您有一個接受n個參數的函數; 在一種情況下,我只需要第一個和第二個參數,所以不是用args和kwargs寫一個長函數定義,而是操縱它們,我可以將null傳遞給其中一個參數。

def myfunct(a, b, c[optional], d[optional], e, f....n):
    [do something]
    if d=="y":
        [do something but use only a and b]

執行:

myfunct(a, b, c, d, .....n)                #OK!
myfunct(a, b, None, "y", None,....n)       #OK?

這理論上不應該引發錯誤,因為null是我認為的值(這不是C ++),雖然我不確定這是否是一種正確的做事方式。 該函數知道當其中一個參數是特定值時存在一個條件,並且在這種情況下它不會要求除1以外的任何其他參數; 所以使用null的風險應該是0。

這是可以接受的,還是我可能會在未來使用這種方法引發問題?

使用None來表示“我沒有提供這個論點”沒有錯。

您可以在代碼中檢查無:

if c is None:
    # do something
if d is not None:
    # do something else

我要做的一個建議是將None作為任何可選參數的默認參數:

def myfunct(a, b, e, f, c=None, d=None):
    # do something

myfunct(A, B, E, F)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM