Hướng dẫn này sẽ tìm hiểu về những điều cơ bản của các hàm Python, bao gồm chúng là gì, cú pháp, các thành phần chính của chúng, từ khóa trả về và các loại chính. Chúng ta cũng sẽ xem các ví dụ về cách xác định hàm Python
Hàm Python là gì?
Hàm là một tập hợp các xác nhận có liên quan thực hiện một phép toán, phân tích hoặc đánh giá. Các hàm Python rất đơn giản để xác định và cần thiết cho lập trình cấp trung cấp. Các tiêu chí chính xác áp dụng cho tên hàm cũng như đối với tên biến. Mục tiêu là nhóm một số hành động thường được thực hiện và xác định một chức năng. Thay vì viết đi viết lại cùng một khối mã cho các biến đầu vào khác nhau, chúng ta có thể gọi hàm và sử dụng lại mã có trong nó với các biến khác nhau
Các chức năng có hai loại, chức năng do người dùng xác định và chức năng tích hợp. Nó hỗ trợ giữ cho phần mềm ngắn gọn, không lặp lại và được tổ chức tốt
Ưu điểm của Hàm trong Python
Các hàm Python có các lợi ích sau
- Bằng cách bao gồm các chức năng, chúng ta có thể ngăn lặp đi lặp lại cùng một khối mã trong một chương trình
- Các hàm Python sau khi được định nghĩa có thể được gọi nhiều lần và từ bất kỳ đâu trong chương trình
- Nếu chương trình Python của chúng tôi lớn, nó có thể được tách thành nhiều hàm để dễ theo dõi
- Thành tựu quan trọng của các hàm Python là chúng ta có thể trả về bao nhiêu đầu ra tùy thích với các đối số khác nhau
Tuy nhiên, việc gọi các hàm luôn được sử dụng trong chương trình Python
Cú pháp hàm Python
Mã số
Các phần tử sau đây tạo thành một chức năng, như đã thấy ở trên
- Phần đầu của tiêu đề hàm được chỉ định bởi một từ khóa có tên là def
- name_of_function là tên của hàm mà chúng ta có thể sử dụng để phân biệt nó với các hàm khác. Chúng ta sẽ sử dụng tên này để gọi hàm sau này trong chương trình. Các tiêu chí tương tự áp dụng cho việc đặt tên hàm cũng như đặt tên biến trong Python
- Chúng tôi truyền đối số cho hàm đã xác định bằng cách sử dụng tham số. Chúng là tùy chọn, mặc dù
- Tiêu đề hàm được kết thúc bằng dấu hai chấm [. ]
- Chúng ta có thể sử dụng một chuỗi tài liệu gọi là docstring ở dạng ngắn để giải thích mục đích của chức năng
- Phần thân của hàm được tạo thành từ một số câu lệnh Python hợp lệ. Độ sâu thụt đầu dòng của toàn bộ khối mã phải giống nhau [thường là 4 dấu cách]
- Chúng ta có thể sử dụng biểu thức trả về để trả về một giá trị từ một hàm đã xác định
Ví dụ về hàm do người dùng xác định
Chúng ta sẽ định nghĩa một hàm mà khi được gọi sẽ trả về bình phương của số được truyền cho nó dưới dạng đối số
Mã số
đầu ra
The square of the number is: 81
Gọi một chức năng
Một hàm được xác định bằng cách sử dụng từ khóa def và đặt tên cho nó, chỉ định các đối số phải được truyền cho hàm và cấu trúc khối mã
Sau khi khung cơ bản của hàm hoàn tất, chúng ta có thể gọi nó từ bất kỳ đâu trong chương trình. Sau đây là một ví dụ về cách sử dụng hàm a_function
Mã số
đầu ra
Length of the string Functions is: 9 Length of the string Python is: 6
Vượt qua Tham chiếu vs. Giá trị
Trong ngôn ngữ lập trình Python, tất cả các đối số được cung cấp bởi tham chiếu. Nó ngụ ý rằng nếu chúng ta sửa đổi giá trị của một đối số trong một hàm, thì sự thay đổi đó cũng được phản ánh trong hàm gọi. Ví dụ,
Mã số
đầu ra
Squares of the list is: [2025, 2704, 169]
Đối số chức năng
Sau đây là các loại đối số mà chúng ta có thể sử dụng để gọi một hàm
- đối số mặc định
- Đối số từ khóa
- Đối số bắt buộc
- Đối số có độ dài thay đổi
Đối số mặc định
Đối số mặc định là một loại tham số nhận giá trị mặc định đầu vào nếu không có giá trị nào được cung cấp cho đối số khi hàm được gọi. Các đối số mặc định được thể hiện trong ví dụ sau
Mã số
đầu ra
Passing one argument num1 is: 10 num2 is: 40 Passing two arguments num1 is: 10 num2 is: 30
Đối số từ khóa
Các đối số trong một hàm được gọi là được kết nối với các đối số từ khóa. Nếu chúng tôi cung cấp các đối số từ khóa trong khi gọi một hàm, người dùng sẽ sử dụng nhãn tham số để xác định giá trị của tham số đó
Vì trình thông dịch Python sẽ kết nối các từ khóa được cung cấp để liên kết các giá trị với các tham số của nó, nên chúng ta có thể bỏ qua một số đối số hoặc sắp xếp chúng không theo thứ tự. Phương thức function[] cũng có thể được gọi với các từ khóa theo cách sau
Mã số
đầu ra
Without using keyword num1 is: 50 num2 is: 30 With using keyword num1 is: 30 num2 is: 50
Đối số bắt buộc
Các đối số được cung cấp cho một hàm trong khi gọi theo trình tự vị trí được xác định trước là các đối số bắt buộc. Số đối số bắt buộc trong lệnh gọi phương thức phải bằng với số đối số được cung cấp khi định nghĩa hàm
Chúng ta phải gửi hai đối số đến hàm function[] theo đúng thứ tự, nếu không nó sẽ trả về lỗi cú pháp, như bên dưới
Mã số
đầu ra
Passing out of order arguments num1 is: 30 num2 is: 20 Passing only one argument Function needs two positional arguments
Đối số có độ dài thay đổi
Chúng ta có thể sử dụng các ký tự đặc biệt trong các hàm Python để truyền bao nhiêu đối số mà chúng ta muốn trong một hàm. Có hai loại ký tự mà chúng ta có thể sử dụng cho mục đích này
- *args -Đây là các đối số không phải từ khóa
- **kwargs - Đây là những Đối số Từ khoá
Dưới đây là một ví dụ để làm rõ các đối số Độ dài thay đổi
Mã số
đầu ra
['PYTHON', 'FUNCTIONS', 'TUTORIAL'] [['First', 'Python'], ['Second', 'Functions'], ['Third', 'Tutorial']]
tuyên bố trở lại
Chúng ta viết một câu lệnh return trong một hàm để rời khỏi một hàm và đưa ra giá trị được tính toán khi một hàm xác định được gọi
cú pháp
Một đối số, một câu lệnh hoặc một giá trị có thể được sử dụng trong câu lệnh trả về, được đưa ra dưới dạng đầu ra khi một nhiệm vụ hoặc chức năng cụ thể được hoàn thành. Nếu chúng ta không viết câu lệnh trả về, thì Không có đối tượng nào được trả về bởi một hàm đã xác định
Dưới đây là một ví dụ về câu lệnh trả về trong các hàm Python
Mã số
đầu ra
With return statement 1521 Without return statement None
Các chức năng ẩn danh
Các loại hàm Python này là ẩn danh vì chúng tôi không khai báo chúng, vì chúng tôi khai báo các hàm thông thường, sử dụng từ khóa def. Chúng ta có thể sử dụng từ khóa lambda để xác định các hàm ẩn danh, đầu ra đơn, ngắn
Biểu thức lambda có thể chấp nhận số lượng đối số không giới hạn; . Họ không thể có nhiều biểu thức hoặc hướng dẫn trong đó. Vì lambda cần một biểu thức, một hàm ẩn danh không thể được gọi trực tiếp để in
Các hàm lambda chứa miền cục bộ duy nhất của chúng, nghĩa là chúng chỉ có thể tham chiếu các biến trong danh sách đối số và tên miền toàn cầu
Mặc dù các biểu thức lambda dường như là biểu diễn một dòng của hàm, nhưng chúng không giống như các biểu thức nội tuyến trong C và C++, chuyển các phân bổ ngăn xếp hàm khi thực thi vì lý do hiệu quả
cú pháp
Các hàm lambda có đúng một dòng trong cú pháp của chúng
Dưới đây là hình minh họa cách sử dụng hàm lambda
Mã số
đầu ra
________số 8
Phạm vi và thời gian tồn tại của các biến
Phạm vi của một biến đề cập đến miền của một chương trình bất cứ nơi nào nó được khai báo. Không thể truy cập đối số và biến của hàm bên ngoài hàm đã xác định. Do đó, họ chỉ có một miền địa phương
Khoảng thời gian tồn tại của một biến trong RAM được gọi là thời gian tồn tại của nó. Các biến trong một hàm có cùng tuổi thọ như chính hàm đó
Khi chúng tôi ra khỏi chức năng, chúng sẽ bị xóa. Kết quả là một hàm không giữ lại giá trị của biến từ các lần thực thi trước đó
Đây là một ví dụ đơn giản về phạm vi của một biến trong một hàm
Mã số
đầu ra
Value of num inside the function: 30 Value of num outside the function: 20
Ở đây, chúng ta có thể quan sát thấy rằng giá trị ban đầu của num là 20. Ngay cả khi hàm number[] sửa đổi giá trị của num thành 30, giá trị của num bên ngoài hàm vẫn không thay đổi
Điều này là do biến num bên trong hàm khác với biến bên ngoài hàm [cục bộ của hàm]. Mặc dù tên biến giống hệt nhau, nhưng chúng là 2 biến riêng biệt có phạm vi riêng biệt
Ngược lại, các biến bên ngoài chức năng có thể truy cập được bên trong chức năng. Các biến này có phạm vi tiếp cận toàn cầu
Chúng ta có thể truy xuất các giá trị của chúng bên trong hàm nhưng không thể thay đổi [thay đổi] chúng. Nếu chúng ta khai báo một biến toàn cục bằng cách sử dụng từ khóa toàn cầu, chúng ta cũng có thể thay đổi giá trị của biến bên ngoài hàm
Chức năng Python trong một chức năng khác
Hàm được coi là đối tượng hạng nhất trong Python. Trong một ngôn ngữ lập trình, các đối tượng hạng nhất được đối xử như nhau ở bất cứ nơi nào chúng được sử dụng. Chúng có thể được sử dụng trong các biểu thức điều kiện, làm đối số và được lưu trong cấu trúc dữ liệu tích hợp. Nếu một ngôn ngữ lập trình xử lý các chức năng như các thực thể hạng nhất, thì nó được cho là thực hiện các chức năng hạng nhất. Python hỗ trợ khái niệm về các hàm First Class
Hàm bên trong hoặc lồng nhau đề cập đến một hàm được xác định trong một hàm được xác định khác. Các chức năng bên trong có thể truy cập các tham số của phạm vi bên ngoài. Các chức năng bên trong được xây dựng để bảo vệ chúng khỏi những thay đổi xảy ra bên ngoài chức năng. Nhiều nhà phát triển coi quá trình này là đóng gói