在Perl中,能夠分配一個對象通常很好,但如果被賦值的變量是'undef',則指定一些後退值。例如:在任務中提供回退價值的最Python方法是什麼?
my $x = undef;
my $y = 2;
my $a = $x || $y;
在此之後,
$a == 2
有一種簡潔的方式在Python實現這一點,如果x的值是無,或將全上......
if x is not None
a = x
else
a = y
......成爲實現這一目標最符合Pythonic的方法?
編輯:道歉,正如一些評論者指出的那樣,我並沒有真正談論未定義的值,而是Perl中的'undef',這不是真的是一回事。但最初措辭的問題沒有說清楚。
請記住,「如果變量被賦值是未定義的」是錯誤的。 「如果分配的變量是假的」更接近真相。 – innaM 2009-04-20 13:19:37
要跟進Manni的評論:如果您可以依賴Perl 5.10或更高版本,最好使用定義的或運算符「//」。 (不是說這對你如何在Python中執行操作有任何影響。) – 2009-04-20 14:42:57