29 เมษายน 2561

Published เมษายน 29, 2561 by with 0 comment

Type hints ใน Python


หลังจากที่ Python 3.5 ได้เปิดตัวออกมา ได้มีไวยากรณ์หนึ่งที่เพิ่มเข้ามาตั้งแต่ Python 3.5 นั่นคือ Type hints

Type hints คือ การบอกว่าฟังก์ชันหรือ method ต้องการตัวแปรชนิดใด และคืนค่าออกมาเป็นชนิดข้อมูลชนิดใด ช่วยให้เราสามารถเขียนโค้ดมีคุณภาพมากยิ่งขึ้น

ในภาษา Python ได้มีการเพิ่มการรองรับ type hints มาตั้งแต่ Python 3.5 เป็นต้นมา
สำหรับ Python ที่ต่ำกว่า 3.5 สามารถใช้งาน type hints โดย backport ด้วยคำสั่ง pip install typing

การใช้งาน type hints
สมมติว่าต้องการสร้างฟังก์ชันบวกเลขด้วยข้อมูลชนิด int โดยที่ไม่ใช้ type hints
ผลลัพธ์
9
45

จะเห็นได้ว่า หากเป็น str บวกกันจะรวมข้อความกัน ทั้งที่เราอยากให้เฉพาะข้อมูล int เท่านั้นที่บวกกันได้ เพราะเราไม่ได้กำหนด method ว่าต้องการตัวแปรชนิดใด

เมื่อลองมาใช้ Type hints
การใช้ Type hints ทำได้ง่าย ๆ เพียงแค่เติม : หลังพารามิเตอร์แต่ละตัวแล้วใส่ชนิดข้อมูลที่ต้องการลงไป และใส่ -> ตามด้วยชนิดข้อมูลที่จะคืนค่าหลัง ) ดังนี้

หากลองรันจะรันได้ปกติ
ผลลัพธ์
9
45

แต่หากนำไปใช้ใน IDE อย่าง PyCharm จะมีการแจ้งเตือนหากใช้ข้อมูลผิดชนิดข้อมูลที่กำหนดไว้
Type hints ใน Python เมื่อใช้กับ Visual Studio Code
นอกจากนั้น  Type hints รองรับขนิดข้อมูลมากมายหรือแม้แต่สร้างเป็นคลาสหรือกำหนดเป็นวัตถุ
ตัวอย่างเช่น
from typing import List
Vector = List[float]

def scale(scalar: float, vector: Vector) -> Vector:
    return [scalar * num for num in vector]

# typechecks; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])
ที่มา :  https://docs.python.org/3/library/typing.html

การใช้งาน Type hints ใน Python กับ Visual Studio Code

ก่อนอื่นให้ทำการติดตั้ง mypy ด้วยคำสั่ง pip install mypy
แล้วทำการติดตั้งปล็กอิน Python (https://marketplace.visualstudio.com/items?itemName=ms-python.python) และทำการเปิดไฟล์ settings.json
  • Windows ไฟล์อยู่ที่ %APPDATA%\Code\User\settings.json
  • macOS ไฟล์อยู่ที่ $HOME/Library/Application Support/Code/User/settings.json
  • Linux ไฟล์อยู่ที่ $HOME/.config/Code/User/settings.json
แล้วให้เติม
"python.linting.enabled": true, "python.linting.mypyEnabled": true

ลงไปในไฟล์ settings.json แล้วบันทึก เพียงเท่านี้ก็สามารถใช้งาน Type hints ใน Python กับ Visual Studio Code ได้แล้ว

อ่านเอกสารเพิ่มเติมได้ที่ https://docs.python.org/3/library/typing.html

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)