Trong Python, một hàm là một khối code đã được đặt tên có thể nhận nhiều tham số đầu vào khác nhau (hoặc không có tham số nào cả) và trả về một số đầu ra trở lại. Nó đại diện cho một khái niệm chính trong lập trình đôi khi được gọi là DRY, viết tắt của Don’t Repeat Yourself. Ý tưởng của DRY là nếu bạn thực hiện một số thao tác cụ thể trong đoạn code của mình nhiều lần, bạn có thể tạo ra một hàm để tái sử dụng lại khối code đó ở bất cứ đâu thay vì cố gắng sao chép bằng cách gõ lại nhiều lần.
Python cung cấp hai loại hàm:
- built-in functions (các hàm được dựng sẵn) là một phần của thư viện tiêu chuẩn
- các hàm do bạn tự tạo ra.
Thư viện tiêu chuẩn bao gồm một số lượng lớn các hàm mà bạn có thể sử dụng trong chương trình của mình, như print(), và nhiều hàm khác đã được giới thiệu trước đây. Xây dựng các hàm của riêng bạn là cách bạn xây dựng các khả năng chưa có trong ngôn ngữ Python. Để xác định một hàm trong Python, bạn sử dụng từ khóa def, đặt tên cho hàm, một tập hợp các đối số nào mà bạn muốn truyền vào hàm và dấu hai chấm ở cuối.
Tên của một hàm phải tuân theo các quy tắc sau:
- Không được bắt đầu bằng một số
- Không được là một từ Python dành riêng (hay còn được gọi keywords), một hàm được dựng sẵn(ví dụ: print(), input(),type() ) hoặc tên đã được sử dụng để làm hàm hoặc biến
- Có thể là bất kỳ sự kết hợp nào của A – Z, a – z, 0 – 9 và dấu gạch dưới (_) và dấu gạch ngang (-)
Sau đây là ví dụ về một hàm cực kỳ đơn giản:
- >>> def devnet():
- ' ' ' prints simple function ' ' '
print('Simple function') - >>> devnet()
- Simple function
Hàm này in ra chuỗi “Simple function” bất cứ khi nào bạn gọi hàm devnet(). Lưu ý phần thụt lề bắt đầu ở dòng tiếp theo sau dấu hai chấm. Python mong đợi phần thụt lề này chứa tất cả code tạo nên hàm. Hãy nhớ rằng khoảng trắng rất quan trọng trong Python. Ba dấu ngoặc kép xuất hiện trên dòng đầu tiên của hàm được goi là một docstring và có thể được sử dụng để mô tả chức năng của hàm. Như ví dụ sau đây, bạn có thể sử dụng hàm built-in help() trong Python để tìm hiểu chức năng của hàm và bất kỳ phương thức nào có thể sử dụng:
>>> help(devnet)
Help on function devnet in module __main__:
devnet()
prints simple function