일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 네트워크
- 프로그래밍
- 딥러닝
- 버전관리
- 자바스크립트
- 머신러닝
- 네트워크보안
- 컴퓨터비전
- Yes
- 알고리즘
- 인공지능
- 코딩
- 보안
- 사이버보안
- 파이썬
- 빅데이터
- 클라우드컴퓨팅
- 데이터구조
- 컴퓨터과학
- 데이터과학
- 소프트웨어
- 2
- 자료구조
- 데이터분석
- 소프트웨어공학
- 컴퓨터공학
- 프로그래밍언어
- 웹개발
- I'm Sorry
- 데이터베이스
- Today
- Total
스택큐힙리스트
파이썬 변수의 유형을 확인하는 가장 좋은 (관용적인) 방법은 무엇인가요? [중복] 본문
이 질문은 이미 답변이 있습니다 :
What are the differences between type() and isinstance()?
1. Hello - 안녕하세요
2. Goodbye - 안녕히 가세요
3. Thank you - 감사합니다
4. Please - 부탁합니다
5. Yes - 예
6. No - 아니요
7. I love you - 사랑해요
8. Sorry - 죄송합니다
10년 전에 닫혔습니다.
파이썬에서 변수가 문자열인지 딕셔너리인지 알아내야 합니다. 다음 코드에 문제가 있는지 알려주세요.
if type(x) == type(str()):
do_something_with_a_string(x)
elif type(x) == type(dict()):
do_somethting_with_a_dict(x)
else:
raise ValueError
업데이트: 저는 avisser의 답변을 받아 들였습니다. (하지만 누군가가 왜 isinstance 보다 type(x) is이 좋은지 설명한다면 제 생각을 바꿀 수도 있습니다.)
그러나 nakedfanatic님이 일련의 if/elif/else문 대신 dict(사례문으로)를 사용하는 것이 종종 더 깨끗하다는 것을 상기시켜 주신 덕분에 감사합니다.
제 사용 사례에 대해 더 자세히 설명하겠습니다. 변수가 문자열이면 리스트에 넣어야합니다. 딕셔너리인 경우 고유한 값의 리스트가 필요합니다. 다음은 제가 생각한 것입니다.
def value_list(x):
cases = {str: lambda t: [t],
dict: lambda t: list(set(t.values()))}
try:
return cases[type(x)](x)
except KeyError:
return None
만약 #$ @ #! @ & @$ &가 선호되면 이 #$! ^ & * $! $ & 함수를 어떻게 작성하시겠습니까?
답변 1
당신의 함수에 누군가가 유니코드 문자열을 전달하거나 dict에서 파생된 클래스를 전달하거나 dict와 유사한 인터페이스를 구현하는 클래스를 전달하면 어떻게 될까요? 아래의 코드는 첫 번째와 두 번째 경우를 다룹니다. 만약 Python 2.6을 사용한다면 ABC PEP을 대신해서 collections.Mapping를 사용할 수도 있습니다.
def value_list(x):
if isinstance(x, dict):
return list(set(x.values()))
elif isinstance(x, basestring):
return [x]
else:
return None
답변 2
파이썬에서 변수의 유형을 확인하는 데 어떤 방법이 가장 좋을까요? 혹자는 isinstance() 함수를 사용하여 변수의 유형을 확인하는 것이 권장되고 있지만, 이 방법은 종종 다른 오류를 일으킬 수 있습니다. 때로는 좀 더 명확하고 신뢰성 높은 방법이 필요할 수 있습니다.그렇다면 어떤 방법이 가장 좋을까요? 파이썬에서 변수의 유형을 확인하는 가장 좋은 방법은 type() 함수를 사용하는 것입니다. 이 함수는 변수의 타입을 돌려주는 기능을 합니다. 다음은 type() 함수를 사용한 예제입니다.
```
x = 5
print(type(x)) #
y = Hello, World!
print(type(y)) #
```
위의 예제에서, type() 함수는 각 변수 x와 y의 유형을 알려주었습니다. 결과 값에서 class 뒤에 있는 문자열이 변수의 유형을 나타내는 것을 볼 수 있습니다. 이를 통해, 변수의 유형을 더욱 명확하게 알 수 있습니다.
따라서, 변수의 유형을 파이썬에서 확인하는 가장 좋은 방법은 type() 함수를 사용하는 것입니다. 이 함수를 사용하여, 변수의 유형을 정확하게 확인할 수 있습니다. 이를 통해, 프로그래머들은 보다 높은 신뢰성과 안정성을 가진 프로그램을 만들 수 있습니다.