def find (myStr,end=len(mystr)):
....
Run Code Online (Sandbox Code Playgroud)
end的默认值应该是len(myStr),但这不起作用.定义函数时会评估默认值,而不是在调用函数时评估.定义find时,myStr尚不存在,因此您无法找到它的长度.
为什么不这样做:
def find(myStr, end=None):
end = len(myStr) if end is None else end
Run Code Online (Sandbox Code Playgroud)
以下是演示:
>>> def find(myStr, end=None):
... end = len(myStr) if end is None else end
... print end
...
>>> # end is set to the supplied value
>>> find("abc", 10)
10
>>> # end is set to the length of myStr (its default value)
>>> find("abc")
3
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |