반응형
a
함수 b
호출 ( a
에 True
또는 False
반환) , 이후 함수 a
는 인쇄 할 결과를 반환 할 수 있습니다.
class C:
...
def a(self, data):
p = self.head
return self.b( p,data)
def b(self, p, data):
current = p
if current.data == data:
return True
else:
return False
if __name__=="__main__":
x = C()
print(x.a(1))
때때로 True
를 의도하더라도 None을 반환합니다. 무슨 일이 있었는지 모르겠어요?
해결 방법
실제 코드를 보지 않고는 말할 수 없습니다. 그 이유는 return
문을 실행하지 않는 함수를 통한 코드 경로 때문일 수 있습니다. 코드가 해당 경로로 내려 가면 함수는 반환 된 값없이 종료되므로 None
을 반환합니다.
업데이트 됨 : 코드가 다음과 같이 보입니다.
def b(self, p, data):
current = p
if current.data == data:
return True
elif current.data == 1:
return False
else:
self.b(current.next, data)
else 절은 None
경로입니다. 재귀 호출이 반환하는 값을 반환해야합니다.
else:
return self.b(current.next, data)
BTW : 이와 같은 반복 프로그램에 재귀를 사용하는 것은 Python에서 좋은 생각이 아닙니다. 대신 반복을 사용하십시오. 또한 명확한 종료 조건이 없습니다.
참조 페이지 https://stackoverflow.com/questions/15604267
반응형
'파이썬' 카테고리의 다른 글
파이썬 python: how to send mail with TO, CC and BCC? (0) | 2021.01.23 |
---|---|
파이썬 IOError : [Errno 22] 잘못된 모드 ( 'r') 또는 파일 이름 : 'c : \\ Python27 \ test.txt' (0) | 2021.01.23 |
파이썬 스크래피 스파이더에서 사용자 정의 인수를 전달하는 방법 (0) | 2021.01.23 |
파이썬 How to sort a dictionary by key? (0) | 2021.01.23 |
파이썬 Python Dependency Injection Framework (0) | 2021.01.23 |
댓글