이것이 작동하는 방법에 대해 약간의 암묵적인 설명이 있지만 정확한 구문을 모릅니다.파이썬에서 데이터 유형을 정의하십시오.
예 :
def function(string):
string = string + "A"
어떻게 함수가 내가 무엇을 입력하고하는 문자열입니다 것을 알 수 있습니까? 파이썬은 동적하지만 정적이지, 당신은 할 수 없습니다 ...
string = type.str
이것이 작동하는 방법에 대해 약간의 암묵적인 설명이 있지만 정확한 구문을 모릅니다.파이썬에서 데이터 유형을 정의하십시오.
예 :
def function(string):
string = string + "A"
어떻게 함수가 내가 무엇을 입력하고하는 문자열입니다 것을 알 수 있습니까? 파이썬은 동적하지만 정적이지, 당신은 할 수 없습니다 ...
string = type.str
변수의 유형을 확인하는 몇 가지 방법이 있습니다.
def isstring(parameter):
return isinstance(parameter, str)
는 또 다른 방법은 매개 변수 결국 캐치 예외 (TypeError
제외)와 (이 경우 ""
에) 문자열을 연결하는 시도 할 수 : 매개 변수가 str
의 인스턴스 인 경우 첫째, 당신은 확인할 수 있습니다
def isstring(parameter):
try:
parameter += ""
return True
except TypeError:
return False
또 다른 방법은 type
사용할 수 (isinstance
비슷한,하지만 다형성 (polymorphism)이 참여하고있다 대부분의 차이) :
def isstr(parameter):
return type(parameter) == str
assert
도 사용할 수 있지만 매개 변수가 특정 유형인지 확인하려면 첫 번째 경우를 채택합니다.
없음의 라인을 따라 뭔가 그 것이다, 그래서 "컴파일 타임"에서 인수 유형을 알 수없는 대신, 당신은 확인할 수 있습니다 assert에 의한 입력 형
def fun(string):
assert isinstance(string, basestring) # we usually check if it type is basestring as this works fine for both ASCII string and Unicode.
string = string + "A"
return string
if __name__ == '__main__':
fun(2)
그렇지 않습니다. 'string + "A"연산은 가능한 경우 성공하고, 그렇지 않으면 성공하지 않습니다. ('string'은 성공하기위한 문자열 일 필요는 없습니다.) 당신이 여기서 무엇을 묻고 있는지 명확하지 않습니다. 왜 함수가 문자열에서 전달하는 것을 "알"려니? – BrenBarn