我想做这样的事情:
def f():
if assignment_requested: return "Return something"
else: print "Return nothing"
Run Code Online (Sandbox Code Playgroud)
哪个应该给:
>>> f()
Return nothing
>>> a = f()
>>> print a
Return something
Run Code Online (Sandbox Code Playgroud)
我找不到任何方法来检查函数是单独调用f()还是用于分配变量a=f().有没有办法做到这一点 ?
例如,在Matlab中,可以使用if nargout>0.
你不能也不应该担心这一点.如果这是一个问题,请使用不同的函数或让您的函数采用控制返回内容的参数.
分配范围广泛且多种多样,可包括再次明确丢弃的分配.例如,如果您的函数用于比较表达式:
if f() == 'Return something':
Run Code Online (Sandbox Code Playgroud)
没有任务,但返回值很重要.
使用不同的功能:
def f_with_return():
return 'something'
def f_without_return():
f_with_return() # ignores the return value!
print "I won't return something"
Run Code Online (Sandbox Code Playgroud)
或参数:
def f(return_something=True):
if return_something:
return 'something'
print "I won't return something"
Run Code Online (Sandbox Code Playgroud)
让您控制返回的内容.
但是,如果您没有显式返回任何内容,Python 仍会返回一个值:None.
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |