Python으로 유형 지정
그러나 VS 코드와 같은 IDE에서는 지식인이 효과가 없다고 느끼기 때문이다
어떤 데이터 유형을 전달했는지 추측하면서 쓸 필요가 있다.
정태적인 고정된 언어에 익숙해진 사람에게는 고통스러운 일이다.
typing 사용
3.5부터 typing 모듈을 표준으로 설정
유형 힌트를 지원합니다.
실행 중 오류 없음
VS 코드를 인코딩할 때 다음 동작을 수행할 수 있습니다.
기본용법
함수 또는 변수 정의에 사용
유형 힌트로 자신의 카테고리를 지정합니다.
어떡하지?typing 모듈의 문서를 검색합니다.
typing.타입()이라는 함수가 있기 때문에 이것을 시험해 보기로 했습니다.
입문 Python 3의 예제를 살짝 바꿔볼게요.
class_test.py라는 반을 설립하여 그 행위를 확인하다
class_test.pyimport typing as tp
class Tail():
def __init__(self, tail:str):
self.__tail = tail
@property
def tail(self) -> str:
return(self.__tail)
@tail.setter
def tail(self,tail:str):
self.__tail = tail
class pBill():
"""型指定なし
"""
def __init__(self, description):
self.__description = description
@property
def description(self):
return(self.__description)
@description.setter
def description(self,description):
self.__description = description
class Bill():
"""型指定あり
"""
def __init__(self, description:str):
self.__description = description
@property
def description(self) -> str:
return(self.__description)
@description.setter
def description(self,description:str):
self.__description = description
class pDack():
"""型指定なし
"""
def __init__(self, bill, tail):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
class Dack():
"""型指定あり
"""
def __init__(self, bill:tp.Type[Bill], tail:tp.Type[Tail]):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
cbill = Bill('くちばし')
ctail = Tail('しっぽ')
cdack = Dack(cbill,ctail)
cdack.about()
### 以下のコードは実行時エラーなし のはず
bill = Bill([])
tail = Tail({})
dack = Dack(bill,tail)
dack2 = Dack(1,2)
dack.about()
우선 행동의 확인부터 시작한다.
class_test.py를 실행해 보세요.
예상한 대로 오류가 발생하지 않을 것이다
terminal$ python class_test.py
This duck has a くちばし and tail= しっぽ
This duck has a [] and tail= {}
이어 지식인의 행동을 확인한다.
유형 지정이 없는 경우
self.왜냐하면 빌이 어떤 유형이 있을지 명확하지 않아요.
self.bill. 때려도 상관없어.
특정 유형이 있는 경우
self.왜냐하면 빌 클래스는 빌에게 확실하게 맡기는 거니까.
self.bill.이렇게 때리면 지식인의 감각이 드러난다.
또한 description은str형입니다.
보태다
tp.Type[Bill] 같은 게 길지 않아도.
일반적인 변수와 같다. 반 이름은 문제없을 것 같다.
이게 더 상큼해.
pythonclass Dack():
"""型指定あり
"""
def __init__(self, bill:Bill, tail:Tail):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
참고 자료
typing-유형 힌트 지원
파이톤으로 시작된 스타일리시한 세상
Reference
이 문제에 관하여(Python으로 유형 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kusanoiskuzuno/items/b0ee6c935a3bb41169e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import typing as tp
class Tail():
def __init__(self, tail:str):
self.__tail = tail
@property
def tail(self) -> str:
return(self.__tail)
@tail.setter
def tail(self,tail:str):
self.__tail = tail
class pBill():
"""型指定なし
"""
def __init__(self, description):
self.__description = description
@property
def description(self):
return(self.__description)
@description.setter
def description(self,description):
self.__description = description
class Bill():
"""型指定あり
"""
def __init__(self, description:str):
self.__description = description
@property
def description(self) -> str:
return(self.__description)
@description.setter
def description(self,description:str):
self.__description = description
class pDack():
"""型指定なし
"""
def __init__(self, bill, tail):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
class Dack():
"""型指定あり
"""
def __init__(self, bill:tp.Type[Bill], tail:tp.Type[Tail]):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
cbill = Bill('くちばし')
ctail = Tail('しっぽ')
cdack = Dack(cbill,ctail)
cdack.about()
### 以下のコードは実行時エラーなし のはず
bill = Bill([])
tail = Tail({})
dack = Dack(bill,tail)
dack2 = Dack(1,2)
dack.about()
$ python class_test.py
This duck has a くちばし and tail= しっぽ
This duck has a [] and tail= {}
tp.Type[Bill] 같은 게 길지 않아도.
일반적인 변수와 같다. 반 이름은 문제없을 것 같다.
이게 더 상큼해.
python
class Dack():
"""型指定あり
"""
def __init__(self, bill:Bill, tail:Tail):
self.bill = bill
self.tail = tail
def about(self):
print("This duck has a ",self.bill.description," and tail=",self.tail.tail)
참고 자료
typing-유형 힌트 지원
파이톤으로 시작된 스타일리시한 세상
Reference
이 문제에 관하여(Python으로 유형 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kusanoiskuzuno/items/b0ee6c935a3bb41169e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Python으로 유형 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kusanoiskuzuno/items/b0ee6c935a3bb41169e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)