def find (myStr,end=len(mystr)):
....
end的默认值应为len(myStr), 但这不起作用。定义函数时会评估默认值,而不是在调用函数时评估。当定义了find时,myStr还不存在,所以你找不到它的长度。
答案 0 :(得分:5)
为什么不这样做:
def find(myStr, end=None):
end = len(myStr) if end is None else end
以下是演示:
>>> 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
>>>