有一个奇怪的问题,而使用活动的目录模块,这是惊人的顺便说一句。。。很棒的包装。在
无论如何,我需要确保用户名是唯一的。。。我的职责是:
import active_directory
def creative_name(fname, lname, n=1):
uname = fname[:n] + lname
x = active_directory.find_user(uname)
if x: creative_name(fname, lname, n+1)
else: return uname
if __name__=='__main__':
print creative_name("Sarah", "Smith")
它总是找不到。。。我希望它能回来。。。或者
^{pr2}$很奇怪,因为如果我像这样运行函数:
def creative_name(fname, lname, n=1):
uname = fname[:n] + lname
x = active_directory.find_user(uname)
if x: creative_name(fname, lname, n+1)
else: print uname
>>>
SaSmith
>>>
萨斯密斯回来了。。。为什么不返回值?!?!打印uname有效,但return uname返回None!在
请帮忙!在
谢谢大家
兰迪
它没有返回}。添加一个
SaSmith
,因为递归部分没有被返回,所以如果x
为真,则函数返回{return
应该可以修复:一。在
注意:如果
active_directory.find_user(fname[:n]_lname)
对于每个n
为真,则第一行防止无限循环。在我同意@Randall的观点,即使用
for
循环可能更具可读性,在上面的例子中,它返回None
。哦,天哪。。。容易得多。在
相关问题 更多 >
编程相关推荐