0
일반적으로 파이썬에서는 타입 검사가 싫은 데다 좋은 이유가 있습니다. 코드가 잘 설계되어 있다면 어떤 종류의 데이터가 함수에 전달되는지 알아야합니다.파이썬에서 와일드 카드로 타입 확인
그러나 이전 프로그래밍 언어를 구현하는 중이고 일부는 입력 유효성 검사 및 호환성과 관련된 고유 한 문제가 있습니다.
def argcheck(stack, funcname, arglist, exceptlist):
"""This function checks if arguments are valid and then passes back a list of them in order if they are.
stack should contain the stack.
funcname should contain the display name of the function for the exception.
arglist should contain a list of lists of valid types to be checked against.
exceptlist contains the information the exception should contain if the item does not match."""
returnlist=[]
count=0
for xtype in arglist:
if stack[-1] in xtype:
returnlist.append(stack[-1])
stack.pop()
else:
raise Exception(funcname, exceptlist[count])
때때로, 나는 어떤 유형과 일치하는 뭔가가 필요 :
이
함수가 실제로 실행되기 전에 몇 가지 기본적인 유형 검사를 수행하는 데 사용되는 기능입니다. 모든 유형의 목록을 만들거나 일치하는 항목이 있으면 true를 반환하는 목록에 항목을 배치하려면 어떻게해야합니까?
"일반적으로 유형 검사는 파이썬으로 눈살을 찌푸리게하고 이익을 위해 reason-- 당신이해야 코드가 잘 설계된 경우 어떤 종류의 데이터가 함수에 전달되는지 알고 있어야합니다. " <- 그 이유가 전혀 아닙니다. 그 이유는 "모든 것이 대상"이기 때문에 일반적으로 함수는주의를 기울이지 않아야합니다. – SpliFF
개체의 메서드가 다릅니다. 함수가 문자열 타입의 인자를 취하고 숫자를 추가 할 것으로 예상된다면, 이것은 잘되지 않을 것입니다. 내가 물어볼 질문은 왜 숫자가 처음부터 문자열을 얻는 기능을 추가하는 것인가? – Kelketek