Có. Python là ngôn ngữ dynamic typed (kiểu động).
Định nghĩa
- Không cần khai báo kiểu biến.
- Kiểu được xác định tại runtime dựa trên giá trị gán.
- Biến có thể đổi kiểu bất cứ lúc nào.
- Quản lý bộ nhớ tự động (Garbage Collection).
Ví dụ
x = [1, 2, 3] print(type(x)) #x = True print(type(x)) # x = "hello" print(type(x)) #
Kết quả
So sánh Static vs Dynamic
| Đặc điểm | Static (C, Java, Go) | Dynamic (Python, JS, Ruby) |
|---|---|---|
| Khai báo kiểu | Bắt buộc | Không cần |
| Kiểm tra kiểu | Compile time | Runtime |
| Đổi kiểu biến | Không (cần cast/union) | Tự do |
| Bộ nhớ | Quản lý thủ công/RAII | GC tự động |
| Phát hiện lỗi kiểu | Sớm (compile) | Muộn (runtime) |
Python 3.5+ Type Hints (Optional Static Checking)
def greet(name: str) -> str:
return f"Hello, {name}"
# Tool: mypy, pyright, pylance check static
# Runtime: KHÔNG enforce, vẫn dynamic
Kết luận
Python dynamic typed → code ngắn, linh hoạt, phát triển nhanh. Trade-off: cần test kỹ, dùng type hints + static analyzer cho dự án lớn.