program tip

변수가 튜플, 문자열 또는 정수인지 확인하는 방법은 무엇입니까?

radiobox 2020. 11. 19. 08:02
반응형

변수가 튜플, 문자열 또는 정수인지 확인하는 방법은 무엇입니까?


연결 작업에서 다른 문자열에 문자열을 추가하는 동안 유형 불일치를 알아 내려고합니다.

기본적으로 반환되는 오류는 다음과 같습니다 TypeError(문자열과 튜플을 연결할 수 없음). 그래서 문자열 대신 튜플로 값을 할당 한 위치를 알아 내고 싶습니다.

내가 할당하는 모든 값은 문자열이므로 튜플이 어디에서 오는지 알아 내야합니다. 그래서 파이썬에서 변수 안에 무엇이 포함되어 있고 어떤 유형인지 알아내는 방법이 있기를 바랐습니다.

지금까지 pdb를 사용 하여 변수의 내용을 확인할 수 있었고 예상 한 값을 올바르게 얻을 수있었습니다. 하지만 변수의 유형도 알고 싶습니다. (논리적으로 컴파일러가 유형 오류를 발생시킬 수 있다면 변수 내부에 무엇이 있는지, 수행 할 작업과 호환되는지를 알고 있음을 의미합니다. 그 값 / 플래그를 얻는 방법이어야합니다).

파이썬에서 변수 유형을 인쇄하는 방법이 있습니까?

BTW, 내 모든 변수를 명시 적으로 문자열로 변경하려고 시도했지만 강제로 실행할 str (myvar)수 없으므로 문자열을 사용하는 모든 곳에서 문자열 유형으로 캐스팅 할 수 없습니다.


다음을 사용합니다.

type(varname)

int, str, float 등을 출력합니다.


isinstance(obj, tuple)
isinstance(obj, basestring)
isinstance(obj, int)

isinstance를 사용합니까?

if isinstance(var, int):

if isinstance(var, str):

if isinstance(var, tuple):

if 문에서 var 유형을 확인하려면 구문 if type(varname) == "tuple":이 작동하지 않습니다. 그러나 이것들은 :

if type(varname) is tuple:
if type(varname) is list:
if type(varname) is dict:
if type(varname) is int:
if type(varname) is str:

.NET을 사용하여 테스트 (Python 2.x 가정)하고 싶을 것입니다 isinstance(obj, basestring). isinstance, 를 사용 type하고 속성을 호출 하는 옵션이 __class__있지만 isinstance여기에서 원하는 옵션 이 될 수 있습니다. 한 번 봐 가지고 이 문서 세 가지 옵션의 차이점에 대한보다 철저한 치료를.


repr (object)는 유형과 값을 표시해야하는 객체에 대한 텍스트 설명을 제공합니다. 디버거에서 이것을 인쇄하거나 볼 수 있습니다.

단순한 값의 경우 repr은 일반적으로 코드에서 문자 그대로 값을 쓰는 것과 동일한 문자열을 반환합니다. 사용자 정의 클래스의 경우 클래스 이름과 객체 ID를 제공합니다.

__repr__

재정의됩니다.

참고 URL : https://stackoverflow.com/questions/7086990/how-to-know-if-a-variable-is-a-tuple-a-string-or-an-integer

반응형