Chức năng khai báo python trước khi sử dụng
Trong C++, các hàm của bạn phải luôn được khai báo trước hàm Show
Trong Python, chúng phải được khai báo và định nghĩa trước khi chúng được gọi Tìm hiểu nghệ thuật viết các hàm của riêng bạn bằng Python, cũng như các khái niệm chính như xác định phạm vi và xử lý lỗiXem chi tiết Mũi tên phải bắt đầu khóa họcViết hàm trong PythonNgười bắt đầu4 giờ 62. 4K Học cách sử dụng các phương pháp hay nhất để viết các hàm phức tạp, có thể bảo trì, tái sử dụng với tài liệu tốtCác đối số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu đối số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy Ví dụ sau có một hàm với một đối số (fname). Khi hàm được gọi, chúng ta truyền vào tên đầu tiên, tên này được sử dụng bên trong hàm để in ra tên đầy đủ Ví dụdef my_function(fname). my_function("Emil") Các đối số thường được rút ngắn thành args trong tài liệu Python Tham số hoặc Đối số?Tham số thuật ngữ và đối số có thể được sử dụng cho cùng một thứ. thông tin được truyền vào một chức năng Từ quan điểm của một chức năng Tham số là biến được liệt kê bên trong dấu ngoặc đơn trong định nghĩa hàm Đối số là giá trị được gửi đến hàm khi nó được gọi Số đối sốTheo mặc định, một hàm phải được gọi với số đối số chính xác. Có nghĩa là nếu hàm của bạn yêu cầu 2 đối số, bạn phải gọi hàm với 2 đối số, không nhiều hơn và không ít hơn Ví dụHàm này mong đợi 2 đối số và nhận 2 đối số def my_function(fname, lname). my_function("Emil", "Refsnes") Tự mình thử »Nếu bạn cố gọi hàm với 1 hoặc 3 đối số, bạn sẽ gặp lỗiVí dụHàm này mong đợi 2 đối số, nhưng chỉ nhận được 1 def my_function(fname, lname). my_function("Emil") Tự mình thử »Đối số tùy ý, *argsNếu bạn không biết có bao nhiêu đối số sẽ được truyền vào hàm của mình, hãy thêm Bằng cách này, hàm sẽ nhận được một bộ đối số và có thể truy cập các mục tương ứng Ví dụNếu số lượng đối số là không xác định, hãy thêm một def my_function(*kids). my_function("Emil", "Tobias", "Linus") Tự mình thử »Đối số tùy ý thường được rút ngắn thành *args trong tài liệu Python Đối số từ khóaBạn cũng có thể gửi đối số bằng cú pháp key = value Bằng cách này, thứ tự của các đối số không thành vấn đề Ví dụdef my_function(con3, con2, con1). my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus") Tự mình thử »Cụm từ Đối số từ khóa thường được rút ngắn thành kwargs trong tài liệu Python Đối số từ khóa tùy ý, **kwargsNếu bạn không biết có bao nhiêu đối số từ khóa sẽ được chuyển vào hàm của mình, hãy thêm hai dấu hoa thị. Bằng cách này, hàm sẽ nhận được một từ điển các đối số và có thể truy cập các mục tương ứng Ví dụNếu số lượng đối số từ khóa không xác định, hãy thêm một dấu ngoặc kép 5 trước tên tham số def my_function(**kid). my_function(fname = "Tobias", lname = "Refsnes") Tự mình thử »Đối số Kword tùy ý thường được rút ngắn thành **kwargs trong tài liệu Python Giá trị tham số mặc địnhVí dụ sau đây cho thấy cách sử dụng giá trị tham số mặc định Nếu chúng ta gọi hàm mà không có đối số, nó sẽ sử dụng giá trị mặc định Ví dụdef my_function(country = "Na Uy"). my_function("Thụy Điển") Truyền Danh sách dưới dạng Đối sốBạn có thể gửi bất kỳ loại dữ liệu nào của đối số tới một hàm (chuỗi, số, danh sách, từ điển, v.v. ) và nó sẽ được coi là cùng kiểu dữ liệu bên trong hàm E. g. nếu bạn gửi Danh sách dưới dạng đối số, nó vẫn sẽ là Danh sách khi đến chức năng Ví dụdef my_function(food). trái cây = ["táo", "chuối", "anh đào"] my_function(trái cây) Tự mình thử »Giá trị trả vềĐể một hàm trả về một giá trị, hãy sử dụng câu lệnh Ví dụdef my_function(x). Tuyên bố vượt quaĐịnh nghĩa 0 để tránh bị lỗiđệ quyPython cũng chấp nhận đệ quy hàm, có nghĩa là một hàm được xác định có thể gọi chính nó Đệ quy là một khái niệm toán học và lập trình phổ biến. Nó có nghĩa là một chức năng gọi chính nó. Điều này có lợi là bạn có thể lặp qua dữ liệu để đạt được kết quả Nhà phát triển nên rất cẩn thận với đệ quy vì có thể khá dễ dàng viết một hàm không bao giờ kết thúc hoặc một hàm sử dụng quá nhiều bộ nhớ hoặc sức mạnh của bộ xử lý. Tuy nhiên, khi được viết đúng, đệ quy có thể là một cách tiếp cận lập trình rất hiệu quả và thanh lịch về mặt toán học. Trong ví dụ này, tri_recursion() là một hàm mà chúng ta đã xác định để gọi chính nó ("recurse"). Chúng tôi sử dụng biến k làm dữ liệu, giá trị này giảm (-1) mỗi khi chúng tôi lặp lại. Đệ quy kết thúc khi điều kiện không lớn hơn 0 (i. e. khi nó bằng 0) Đối với một nhà phát triển mới, có thể mất một chút thời gian để tìm ra chính xác cách thức hoạt động của nó, cách tốt nhất để tìm hiểu là thử nghiệm và sửa đổi nó Có cần khai báo hàm trước khi sử dụng không?Việc buộc người lập trình phải khai báo các hàm trước khi sử dụng chúng cho phép trình biên dịch hoạt động trong một lượt (i. e. chỉ đọc mã một lần). 40 năm trước, điều quan trọng là giới hạn thời gian biên soạn. Hôm nay nó chỉ là một sự khó chịu
Tôi có thể gọi một hàm trước khi định nghĩa nó không?Cẩu. Với các hàm JavaScript, có thể gọi các hàm trước khi thực sự viết mã cho câu lệnh hàm và chúng đưa ra một đầu ra xác định. Thuộc tính này được gọi là cẩu. Hoisting là khả năng một hàm được gọi ở đầu tập lệnh trước khi nó được khai báo.
Làm cách nào để khai báo một hàm trong Python?Trong Python, bạn xác định hàm bằng từ khóa def, sau đó viết mã định danh hàm (tên) theo sau là dấu ngoặc đơn và dấu hai chấm . Điều tiếp theo bạn phải làm là đảm bảo rằng bạn thụt lề bằng một tab hoặc 4 dấu cách, sau đó chỉ định những gì bạn muốn chức năng thực hiện cho mình.
Chúng ta có thể sử dụng một chức năng mà không cần khai báo nó không?Bạn có thể sử dụng chúng nếu muốn, nhưng nếu không, trình biên dịch vẫn sẽ thực hiện một khai báo ngầm trên bất kỳ lệnh gọi hàm không xác định nào mà nó thấy . Tua nhanh vài năm nữa, đến C11. Bây giờ ẩn int cuối cùng đã biến mất. Cần có trình biên dịch để khiếu nại nếu bạn gọi hàm mà không khai báo trước. |