处理函数返回None的情况的最佳方法是什么。例如:
def my_function():
if <some_stuff_works>:
return <stuff>
else:
return None
my_var = my_function()
如果my_var为None,则我要做的是引发异常,然后设置为某个值。如下所示:
try:
my_var = my_function()
except ValueIsEmpty:
my_var = "EMPTY"
这有意义吗?
答案 0 :(得分:3)
如果您无法修改此功能,则无需提出广告素材异常:只需检查它是否为None
并为其提供适当的值。
my_var = my_function()
if my_var is None:
my_var = 'default_value'
答案 1 :(得分:1)
由于您想要使用例外,请尝试此操作;
def my_function():
if <some_stuff_works>:
return <stuff>
raise ValueError
try:
my_var = my_function()
except ValueError:
my_var = "EMPTY"
答案 2 :(得分:0)
你可以这样做:
var = my_function() or 'default_value'
但是,var
将等于&#39; default_value&#39;当my_function
返回时
None
(你想要的)False
0
[]
(感谢@roganjosh)由你决定你想要什么。如果你不知道这是什么,@ brianpck的回答仍然是最好的。
您还可以使该函数引发异常,而不是返回None
。
def my_function():
if <some_stuff_works>:
return <stuff>
else:
raise SomeException # maybe TypeError, whatever
然后像这样称呼它:
try:
result = my_function()
except SomeException:
result = 'EMPTY'
甚至更好:
def my_function():
if <some_stuff_works>:
return <stuff>
# no need for the else because return end up the function execution.
# so if it returns <stuff>, it will stop, and not look further
return 'EMPTY'